ДИЗАЙН - Удалить по имени или объекту?

0

Имеет ли смысл удалить объект, используя его имя /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++, так и код С#...

  • 0
    Если вы хотите эмулировать стандартную библиотеку, вы должны использовать итератор.
  • 0
    Как насчет в C #?
Показать ещё 2 комментария
Теги:
design

1 ответ

0

У вас может не быть ссылки на товар всегда. Поэтому лучше удалить методы по имени или id. Вы можете решить, какой из них предпочтительнее (имя или идентификатор) в соответствии с требованиями вашего бизнеса. имя или идентификатор должны быть уникальными, иначе он удалит неправильный элемент. Поэтому бизнес-требование должно решить это.

  • 0
    Вы можете использовать функцию find (Guid id), чтобы получить реальный объект, а затем передать это ...
  • 0
    Но пользовательский класс вызывает метод Remove (Guid id), скорее, найдите элемент, а затем удалите его.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню