Re[29]: Некоторые мысли о LINQ
От: Tissot Россия  
Дата: 09.01.09 12:33
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Вот на этом месте начинают сыпаться все преимущества Domain Model.


Посмотрим.

G>Представляем себе код:

G>
G>public class Customer
G>{
G>  private ZipCodeValidationStrategy _zipCodeValidationStrategy;

G>  ...
G>  public string ZipCode
G>  {
G>    get {return _zipCode;}
G>    set
G>    {
G>      if(_zipCodeValidationStrategy.Validate(value))
G>      {
G>         _zipCode = value;
G>      }
G>    }
G>  }
G>}
G>

G>Вот теперь вопрос, как кастомер получает zipCodeValidationStrategy? Сам класс инстанцировать zipCodeValidationStrategy не может потому что от страны, а страна хранится где-то еще.

Где-то еще — это где? Я предполагал, что у кастомера и так есть страна. Тогда получить валидацию можно так:
ZipCodeValidationStrategyFacory.GetByCountryCode(this.CountryCode)


G>Это значит маппер должен уметь инжектить переданный ему инстанс стратегии в создаваемую сущность. С другой стороны при ручном создании инстанса надо инжектить такуюже стратегию.

G>Учитывая что не все мапперы позволяют перехватывать процесс создания объектов получается не очень хорошо.

А теперь рассказывай, как ты будешь с этим бороться:

update customer set zipCode = "любой невалидный zip";
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.