设计 - 按名称或对象删除?

时间:2014-12-05 03:26:31

标签: c# c++

使用其名称/ 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#代码......

1 个答案:

答案 0 :(得分:1)

您可能始终没有该项目参考。因此,最好按名称或ID删除方法。 您可以根据业务需求决定哪一个更适合(名称或ID)。 name或id必须是唯一的,否则它将删除错误的项目。因此业务需求必须决定它。