Какие распространенные шаблоны DDD (доменного управления)? - PullRequest
9 голосов
/ 03 ноября 2010

Шаблон спецификации - это общий шаблон, используемый в DDD, который инкапсулирует бизнес-логику для ответа на один вопрос.

public interface ISpecification<T>
{
    bool IsSatisfiedBy(T aSource);
}

public class CustomerHaveDiscountSpec : ISpecification<Customer>
{
   bool IsSatisfiedBy(Customer aCustomer)
   {
       /* ... */
   }
}

Какие другие шаблоны распространены в доменно-управляемом дизайне?

Ответы [ 2 ]

7 голосов
/ 04 ноября 2010

Я рекомендую InfoQ's Domain Driven Design Быстро , который хорошо справляется с работой над (слишком) более длинной книгой Эрика Эванса.Основываясь на ответе @ Pangea, список объектов заслуживает некоторого описания:

  • Репозиторий : инкапсулирует постоянство и поиск - обычно база данных
  • Служба : объект API без сохранения состояния, используемый для совокупного корня CRUD
  • Aggregate Root : объект, чьи другие дочерние составные объекты не имеют соответствующего значения без него - возможно, самый важный аспект с точки зрения API при обсуждении DDD
  • Объект значения : объект, состояние которого не изменяется после создания экземпляра (например, цвет), особенно полезен в многопоточном программировании, поскольку его использование устраняет проблемы параллелизма
5 голосов
/ 03 ноября 2010

Я не думаю, что мы называем это шаблонами, но некоторые понятия - это хранилище, совокупный корень, объект значения, сущность, доменные службы, службы приложений. Ниже полезны две ссылки

http://dddcommunity.org/resources/ddd_terms

http://refcardz.dzone.com/refcardz/getting-started-domain-driven

...