使用名称/ID 删除对象或传递实际对象是否更有意义?例如:
void MyList::remove(MyObject &myObject) { /* blah */ }
// or
void MyList::remove(std::string id) { /* blah */ }
我都用过,但我真的看不出优缺点。有首选标准吗?
编辑:这可能是提供我正在尝试做的事情的更好示例:
假设我有一个包含交易集合的账户类。我是传递交易对象还是传递交易 ID 更好?
class Account
{
private List<Transaction> transaction = new List<Transaction>();
public void Remove(Transaction transaction) { }
// OR
public void Remove(string name) { }
// OR
public void Remove(Guid id) { }
}
注意:这个问题有 C++ 和 C# 代码...
最佳答案
您可能并不总是拥有项目引用。所以最好按名称或 ID 删除方法。 您可以根据您的业务需求决定哪个更可取(名称或 ID)。 name 或 id 必须是唯一的,否则它会删除错误的项目。所以业务需求必须决定它。
关于c# - 设计——按名称或对象删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27308243/