пожалуйста, назовите этот «образец», чтобы я мог исследовать и узнать больше - PullRequest
0 голосов
/ 11 декабря 2010

Недавно я слышал, как кто-то поддерживал тот факт, что модель домена не должна позволять обновлять объекты домена через свойства с последующим вызовом Save. Но скорее все обновления должны быть сделаны через явные методы. Пример того, как я понимаю, что было сказано:

Плохой код (это кажется мне вполне нормальным):

var x = _repository.GetCustomerByID(5);
x.Firstname = "Travis";
x.Lastname = "Laborde";
_respository.SaveCustomer(x);

Код, который, как я полагаю, этот человек подал, будет выглядеть так:

var x = _repository.GetCustomerByID(5);
x.UpdateCustomerName("Travis", "Laborde");
_repository.SaveCustomer(x);

Я хотел бы узнать больше - есть ли название для этого шаблона, чтобы я мог найти его на Bing?

1 Ответ

2 голосов
/ 11 декабря 2010

Мне не известно, что этот шаблон имеет конкретное имя, но из того, что вы описываете, есть основная практическая причина для этого:

Запись x.Firstname = "Travis" не позволяет объекту x знать, чтозначение Firstname было изменено.Это затрудняет реализацию функции SaveCustomer, которая использует UPDATE только для полей, которые были изменены.

Конечно, в языке, который поддерживает обработку назначения членов как вызов функции (например, скажем,C # делает со своими свойствами), этот шаблон становится гораздо менее интересным.

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