DDD

充血模型和贫血模型

  • 贫血模型(Anemic Domain Model)
    • 领域对象(如实体类)只包含数据属性和简单的get/set方法,并没有任何业务逻辑。
    • 数据传输对象(DTO)作用类似。
  • 充血模型(Rich Domain Model)
    • 将领域对象设计为不仅拥有属性,还拥有处理自身业务逻辑的方法与行为,实现数据和逻辑的高度内聚。
    • 面向对象原则,业务逻辑更加聚合,易于扩展和理解。

DP(Domain Primitive)

  • 在特定业务领域内,代表最基本的概念和值对象,并通过代码将实际业务规则和约束严格封装起来的类型。
  • 相关的业务规则(列如校验)直接写进自定义类的构造函数或方法。
    • 自检属性
      • 领域原语在创建和变更时内部自动校验自身的合法性,无需依赖外部调用者或其他服务。
      • 例如,手机号类、金额类等自定义类型在构造时会进行格式、范围、类型等校验,只要不满足条件就不能被创建。
    • 隐喻属性
      • 强调领域原语被设计为业务领域中“有意义的概念”,而不是仅有技术表现。
      • 比如“电话号码”、“房间数量”、"Weight"等,这些类型直接对应业务概念,其具体的属性和行为就是领域知识的隐喻反映。
  • DP是无状态的
    • 状态 那些会随时间或操作发生变化的数据被称为“状态”。
    • 无状态 一旦初始化便不发生变化,仅代表当前对象的某种业务特征,如“手机号”“金额”等。

可维护性

  • 什么是*可维护性? 由外部依赖变化导致内部系统的改造程度。
  • 外部依赖 不属于当前域内的设施和服务 如数据库

可拓展性

  • 内部逻辑的变化所导致的内部系统的改造程度。
posted @ 2025-08-25 14:45  灵泽pro  阅读(8)  评论(0)    收藏  举报