Имеет ли смысл удалить объект, используя его имя /id или передать фактический объект? Например:
void MyList::remove(MyObject &myObject) { /* blah */ }
// or
void MyList::remove(std::string id) { /* blah */ }
Я использовал оба, но я не могу понять, какие преимущества и недостатки. Есть ли предпочтительный стандарт?
EDIT: это, вероятно, лучший пример того, что я пытаюсь сделать:
Скажем, у меня есть класс Account с набором транзакций. Лучше ли мне передавать объект Transaction или идентификатор Tranaction?
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++, так и код С#...
У вас может не быть ссылки на товар всегда. Поэтому лучше удалить методы по имени или id. Вы можете решить, какой из них предпочтительнее (имя или идентификатор) в соответствии с требованиями вашего бизнеса. имя или идентификатор должны быть уникальными, иначе он удалит неправильный элемент. Поэтому бизнес-требование должно решить это.