前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >领域驱动小节

领域驱动小节

原创
作者头像
乐事
修改2020-08-07 09:52:24
4550
修改2020-08-07 09:52:24
举报
文章被收录于专栏:日常笔记日常笔记

1.如何避免程序直接使用Repository

在应用层(Application)注入 Repository 服务,在 Repository 中转化 Domain 对象,这种方式简单直接,但是很容易将 Repository 的服务做成事务脚本的模式,结果将业务由 Domain 转移到 Repository 的服务中来,做成了伪 DDD 模式。

在应用层(Application)注入 DomainFactory 服务,在 DomainFactory 中构建 Domain 对象时将 Repository 服务导入到 Domain 对象中。Application 无法直接调用 Repository 服务,只能通过 Domain 来操作 Repository 服务,这样避免了 Repository 作为上帝之手的角色。将业务封装在 Domain 中,最大可能的避免 Repository 的臃肿。

2 .业务模块入口

我们已经将业务封装在模型中,但是不可能把一个领域的所有业务都封装在一个模型中,为了完成一个领域业务会创建一系列模型,还需要考虑这些模型之间的关系,将一个模块的业务聚合在一个聚合根下面,同一个聚合根下的所有对象只能拥有唯一的访问入口,来保证聚合内部的一致性

3. 代码架构

采用六边形架构 ,依赖倒置 面向抽象编程,减少对具体实现对依赖。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.如何避免程序直接使用Repository
  • 2 .业务模块入口
  • 3. 代码架构
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档