使用其名称/ id删除对象或传递实际对象更有意义吗?例如:
void MyList::remove(MyObject &myObject) { /* blah */ }
// or
void MyList::remove(std::string id) { /* blah */ }
我已经使用了两者,但我无法真正看到优点与劣势。有首选标准吗?
编辑:这可能是一个更好的例子,提供我正在尝试做的事情:
假设我有一个包含一系列交易的帐户类。我最好传递Transaction对象还是Tranaction的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#代码......
答案 0 :(得分:1)
您可能始终没有该项目参考。因此,最好按名称或ID删除方法。 您可以根据业务需求决定哪一个更适合(名称或ID)。 name或id必须是唯一的,否则它将删除错误的项目。因此业务需求必须决定它。