前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >领域驱动设计之体系架构模式交互过程与最佳实践

领域驱动设计之体系架构模式交互过程与最佳实践

作者头像
用户1910585
发布2018-05-11 15:28:21
1.1K0
发布2018-05-11 15:28:21
举报
文章被收录于专栏:领域驱动设计DDD实战进阶

上一文主要讲了DDD体系架构以及每一层主要的作用,这篇主要描述各层之间如何进行交互,以及交互的最佳实现方式。

1.应用层某个应用层服务被界面层调用,开始启动。

2.对于需要新增领域对象的情况,应用层调用领域层中某个领域对象(聚合根)的构造函数或工厂创建出领域对象,然后调用领域对象的某些方法进行相关的业务操作,操作完成后,应用层服务将新创建的领域对象添加到仓储中。

3.对于需要修改领域对象的情况,应用层服务通过仓储获取领域对象,然后调用领域对象的某些方法进行相关的业务操作,操作完成后,应用层服务将新修改的领域对象添加到仓储中。

4.如果一个操作设计到多个领域对象,则应用层服务调用领域层的某个领域服务完成操作。

5.最后通知工作单元将仓储中的领域对象以事务的方式持久化到数据库中。

在实际的开发经验中,有以下几点需要特别说明:

1.一般通过应用层访问仓储,而且是使用领域层定义的仓储接口,具体仓储的实现调用可以通过IOC的机制在应用层通过服务定位器模式找到。

2.一般不要再领域层访问仓储,如果领域层中的领域对象或领域服务的业务逻辑处理确实需要访问仓储,建议不通过服务定位器的方式在领域层进行服务解析,而是应该在领域对象或领域服务的构造函数中传入仓储接口,具体是哪个仓储实现仍然在应用层通过服务定位器模式找到,这样能够保证领域层只关注业务,而不关注其他的方面。

3.一些界面需要获取的查询信息,不应该通过领域对象直接返回给应用层服务,然后应用层服务返回给界面。通常界面需要的信息可能来源于领域对象的一部分状态,也有可能来源于多个领域对象的组合,这时应该在应用层实现DTO。DTO定义的就是界面所需要显示的状态,应用层服务应该能够将DTO与领域对象间作映射、组合或转换,以更好的实现界面信息的展示。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015-11-25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档