DDD(四)
2019-08-17 18:28
1176 查看
1,引言
软件开发者大多趋向于将关注点放在数据上,而不是领域上。这对于刚入门的DDD的新手而言也是如此。以我目前的思考方式,数据库依然占据主要的地位。开发一个功能,首先我就会考虑我会用到哪些属性,这些属性又有什么外键关系,而不是直接在脑海中产生一个领域的概念,这样会将数据直接反应在对象上,这会产生大量的get和set方法,虽然现在有工具可以生成get和set,但这确不是DDD的做法。
2.实体(Entity)
实体本质、具体事物、个别主体、现象的支持者等意义,其含义一般是指能够独立存在的、作为一切属性的基础和万物本原的东西。
对于java而言,实体就是属性类,通常定义在model层里面。
而DDD中要求实体是唯一的且可持续变化的。意思是说在实体的生命周期内,无论其如何变化,其仍旧是同一个实体。唯一性由唯一的身份标识来决定的。可变性也正反映了实体本身的状态和行为。
为什么要使用实体?
当我们需要考虑一个对象的个性特征,或者需要区分不同的对象时,我们引入实体这个领域概念。
ddd的实体都做了些什么?
传统的实体只做值得传递作用,这无疑是相对浪费资源的,DDD的思想就是在实体中存在一些业务,例如:生成订单号,判断金额不能低于0.01等业务,这样可以减轻service层的压力。
3.小结
实体是存在贫血、充血、胀血这些特征,在之前的学习中有说到过,DDD的实体就是充血实体,传统的实体只有属性的实体称之为贫血实体,各有优劣。
相关文章推荐
- 反汇编动态追踪工具Ollydbg. ALD,ddd,dbg,edb...
- ddd 领域驱动
- DDD开发框架ABP之导航菜单
- 对DDD中领域服务的理解
- DDD实施经验分享―价值导向、从上往下进行(圈内第一个吃螃蟹DDD实施方案)
- 摘抄来自论坛的一些DDD讨论
- 基于 Lind.DDD 的 权限管理系统
- DDD领域驱动设计基本理论知识总结
- DDD及相关概念
- 我的架构设计~用层关系图说说mvc,mvvm,soa,ddd - 张占岭 - 博客园
- DDD 领域驱动设计-两个实体的碰撞火花
- ddd
- 对增强过的ddd.png进一步图像增强(二)
- ddd
- 关于DDD的学习资料汇总
- 如何一步一步用DDD设计一个电商网站(十三)—— 领域事件扩展
- 如何一步一步用DDD设计一个电商网站(十四)—— 回顾与总结
- DDD领域模型企业级系统(二)
- TDD、BDD、ATDD、DDD 软件开发模式
- [外文理解] DDD创始人Eric Vans:要实现DDD原始意图,必须CQRS+Event Sourcing架构。