领域层主要负责表达业务概念,业务状态信息和业务规则。
Domain层是整个系统的核心层,几乎全部的业务逻辑会在该层实现。
领域模型层主要包含以下的内容:
实体(Entities):具有唯一标识的对象
值对象(Value Objects): 无需唯一标识。
领域服务(Domain): 与业务逻辑相关的,具有属性和行为的对象。
聚合/聚合根(Aggregates & Aggregate Roots): 聚合是指一组具有内聚关系的相关对象的集合。
工厂(Factories): 创建复杂对象,隐藏创建细节。
仓储(Repository): 提供查找和持久化对象的方法。
领域层biz目录:
(1)domain
存放Domain类,Domain负责业务逻辑,调用Repository对象来执行数据库操作。Domain没有直接访问数据库的代码,具体的数据库操作是通过调用Repository对象完成的。
注意,除了CQRS模式外,Repository都应该是由Domain调用的,而不是由Service调用。
(2)repository
存放Repository类,调用Dao或者Mapper对象类执行数据库操作。
(3)factory
存放Factory类,负责Domain和实体Entity的转换。