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

领域驱动设计之仓储

作者头像
用户1910585
发布2018-05-11 15:23:57
1.2K0
发布2018-05-11 15:23:57
举报

在了解仓储之前,首先我们来看领域对象的生命周期。

1.首先通过调用领域对象的构造函数或工厂创建出对象,对象处于活动状态,这时对象可以进行相关业务逻辑处理。

2.对象如果需要进行持久化,则需要通过持久化操作将对象存储到持久化存储中,比如数据库。

3.当需要使用某个对象时,可以通过访问持久化存储重建这个对象,并使用这个对象,使用后的对象可以重新持久化到存储中,也可以销毁。

4.当需要销毁某个对象时,可以通过访问持久化存储重建这个对象,并删除这个对象。

这里需要注意的是,在实际的开发过程中,我们建议不要删除对象,因为删除在大多数情况下是数据库层面的内容,在业务层面,我们建议更改对象的状态为废弃,在持久化

时,对数据所做的操作应该是更新。

仓储的主要作用就是用来维护一系列的领域对象,领域对象通过仓储来实现持久化(也就是通过仓储来与数据库打交道),而不是领域对象直接操作数据库。这样做的好处是:

1.解耦了领域对象与持久化机制。领域对象不用关心持久化具体使用的技术,领域对象只需要知道仓储的接口,具体仓储的实现机制它并不关心,这样也实现了领域模型的纯净性。

2.可以随时替换仓储的实现,也就是数据库持久化机制,而对领域对象是透明的,并且有助于作单元测试。

这里需要重点申明的是,工厂和仓储的实现都是针对聚合根,我们只对聚合根设计仓储。

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

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

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

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

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