充血模型和贫血模型
- 贫血模型(Anemic Domain Model)
- 领域对象(如实体类)只包含数据属性和简单的get/set方法,并没有任何业务逻辑。
- 和数据传输对象(DTO)作用类似。
- 充血模型(Rich Domain Model)
- 将领域对象设计为不仅拥有属性,还拥有处理自身业务逻辑的方法与行为,实现数据和逻辑的高度内聚。
- 面向对象原则,业务逻辑更加聚合,易于扩展和理解。
DP(Domain Primitive)
- 在特定业务领域内,代表最基本的概念和值对象,并通过代码将实际业务规则和约束严格封装起来的类型。
- 把相关的业务规则(列如校验)直接写进自定义类的构造函数或方法。
- 自检属性
- 领域原语在创建和变更时内部自动校验自身的合法性,无需依赖外部调用者或其他服务。
- 例如,手机号类、金额类等自定义类型在构造时会进行格式、范围、类型等校验,只要不满足条件就不能被创建。
- 隐喻属性
- 强调领域原语被设计为业务领域中“有意义的概念”,而不是仅有技术表现。
- 比如“电话号码”、“房间数量”、"Weight"等,这些类型直接对应业务概念,其具体的属性和行为就是领域知识的隐喻反映。
- DP是无状态的
- 状态 那些会随时间或操作发生变化的数据被称为“状态”。
- 无状态 一旦初始化便不发生变化,仅代表当前对象的某种业务特征,如“手机号”“金额”等。
可维护性
- 什么是*可维护性? 由外部依赖变化导致内部系统的改造程度。
- 外部依赖 不属于当前域内的设施和服务 如数据库
可拓展性
posted @
2025-08-25 14:45
灵泽pro
阅读(
8)
评论()
收藏
举报