繁体   English   中英

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

[英]DESIGN — Remove by name or object?

使用对象的名称/ ID或传递实际对象删除对象更有意义吗? 例如:

void MyList::remove(MyObject &myObject) { /* blah */ }
// or
void MyList::remove(std::string id) { /* blah */ }

我都用过,但是我真的看不到优点和缺点。 有没有首选的标准?

编辑:这可能是一个更好的例子,提供我正在尝试做的事情:

假设我有一个带有交易集合的Account类。 我最好传递事务对象或交易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)。 名称或ID必须是唯一的,否则它将删除错误的项目。 因此,业务需求必须决定。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM