领域逻辑的组织可分为三种主要模式:事务脚本、领域模型以及表模块;
- 事务脚本:最简单;
- 领域模型:面向对象,使用多个对象的组合完成需求任务,将 可以完成复杂的逻辑,当然也兼容简单逻辑;
- 表模块:与领域模型相似,区别在于对数据库中所有合同只有一个共同的合同类实例,在一个用于处理合同的表模块中,客户需要先对数据库进行查询以生成一个记录集,然后以该记录集为参数创建一个合同对象。
许多方面,表模块是事务脚本和领域模型的一个中间地带,其最大优点在于其与软件架构中已有部分的衔接。
如何选择可以参考下图;
开发小组的经验越丰富,则越推荐使用领域模型;
服务层
通常将领域层独立出服务层,置于底层的领域模型或表模块之上。表现逻辑与领域层的交互完全通过服务层,类似于API。
而“控制器—实体风格”,建议最小化服务层;