Какой тип метода использовать для объекта Удалить или Сохранить? - PullRequest
3 голосов
/ 11 января 2010

Это может быть субъективный вопрос, но я хочу знать, что люди считают лучшим примером поведения методов сохранения или удаления объекта?

Когда вы устанавливаете класс, который будет содержать информацию о записи в БД, я обычно в конечном итоге объявляю методы объектов Delete () и Save () как void. Поскольку эти методы обычно выполняют прямое действие над другими свойствами объекта, нужно ли нам возвращать что-либо еще, чтобы подтвердить действие? При сбое я просто позволил структуре обработки ошибок или коду реализации обработать любое исключение.

Я видел много объектов, которые отправляют обратно строки, затронутые int или другим возвратом, каково «экспертное» мнение по этому поводу?

т.е. это:

public void Delete()
{
   if (this.objectID == null || this.objectID == -1) { throw new exNotDbObject() }
   //Do dB operations
   this.objectID = null;
   this.TimeRetrievedFromDb = null;

}

против этого:

public int Delete()
{
   if (this.objectID == null || this.objectID == -1) { throw new exNotDbObject() }
   int retVal = dataLayer.DeleteObj(this.objectID);
   return retVal;
}

1 Ответ

1 голос
/ 11 января 2010

Мне нравится int Delete() сам. Затем я могу сказать, сколько (если таковые имеются) записи были удалены, и, если не возникает каких-либо проблем, программа может продолжаться, как и ожидалось.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...