2017-12-27领域模型实践

https://mp.weixin.qq.com/s/jMWuMuIvI1cFThC-WQGbHQ

设计领域模型的一般步骤如下:

1.根据需求划分出初步的领域和限界上下文,以及上下文之间的关系;

2.进一步分析每个上下文内部,识别出哪些是实体,哪些是值对象;

3.对实体、值对象进行关联和聚合,划分出聚合的范畴和聚合根;

4.为聚合根设计仓储,并思考实体或值对象的创建方式;

在工程中实践领域模型,并在实践中检验模型的合理性,倒推模型中不足的地方并重构。



如何创建好的聚合?

边界内的内容具有一致性:在一个事务中只修改一个聚合实例。如果你发现边界内很难接受强一致,不管是出于性能或产品需求的考虑,应该考虑剥离出独立的聚合,采用最终一致的方式。

设计小聚合:大部分的聚合都可以只包含根实体,而无需包含其他实体。即使一定要包含,可以考虑将其创建为值对象。

通过唯一标识来引用其他聚合或实体:当存在对象之间的关联时,建议引用其唯一标识而非引用其整体对象。如果是外部上下文中的实体,引用其唯一标识或将需要的属性构造值对象。

如果聚合创建复杂,推荐使用工厂方法来屏蔽内部复杂的创建逻辑。


Cache Aside Pattern  ??


上文中,我们将领域行为封装到领域对象中,将资源管理行为封装到资源库中,将外部上下文的交互行为封装到防腐层中。此时,我们再回过头来看领域服务时,能够发现领域服务本身所承载的职责也就更加清晰了,即就是通过串联领域对象、资源库和防腐层等一系列领域内的对象的行为,对其他上下文提供交互的接口。


©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容