哪些是常见的DDD(域驱动设计)模式?

时间:2010-11-03 19:59:03

标签: oop design-patterns domain-driven-design

规范模式是DDD中使用的一种常见模式,它封装了业务逻辑以响应一个问题。

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

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

域驱动设计中常见的其他模式?

2 个答案:

答案 0 :(得分:6)

我推荐InfoQ的Domain Driven Design Quickly,它可以很好地提取Eric Evans的(太长)书。在@ Pangea的答案的基础上,对象列表值得一些描述:

  • 存储库:封装持久性和搜索 - 通常是数据库
  • 服务:用于聚合根CRUD的无状态API实体
  • 聚合根:其他子复合实体在没有它的情况下缺乏适当含义的实体 - 在讨论DDD时,可能是从API角度来看最重要的方面
  • 值对象:实例化后状态未发生变化的实体(例如Color),在多线程编程中特别有用,因为使用这样可以消除并发问题

答案 1 :(得分:5)

我不认为我们将其称为模式,但有些概念是存储库,聚合根,值对象,实体,域服务,应用程序服务。以下两个链接很有帮助

http://dddcommunity.org/resources/ddd_terms

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