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

发布于 2024-09-30 04:24:57 字数 323 浏览 0 评论 0原文

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

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

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

领域驱动设计中还有哪些常见的其他模式?

Specification pattern is a common pattern used in DDD that encapsulate business logic to respond to one question.

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

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

Which other patterns are common in Domain-Driven Design?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

怎樣才叫好 2024-10-07 04:24:57

我推荐 InfoQ 的 Domain Driven Design Quickly,它在提炼方面做得很好埃里克·埃文斯(Eric Evans)写的(太)长的书。基于@Pangea的答案,对象列表值得一些描述:

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

I recommend InfoQ's Domain Driven Design Quickly, which does a good job of distilling the (too) longer book by Eric Evans. Building upon @Pangea's answer, the objects list deserves some description:

  • Repository: encapsulates persistence and search - typically database
  • Service: stateless API entity used for aggregate root CRUD
  • Aggregate Root: an entity whose other child composite entities lack appropriate meaning without it - perhaps the most important aspect from an API perspective when talking about DDD
  • Value Object: entity whose state does not change after instantiation (e.g. Color), particularly useful in multithreaded programming because using such eliminates concurrency issues
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文