领域驱动设计——Domain-drivenDesign:全球快消息
领域驱动设计(Domain-driven Design)
【资料图】
Domain:一个领域本质上可以理解为就是一个问题域,只要是同一个领域,那问题域就相同。所以,只要我们确定了系统所属的领域,那这个系统的核心业务,即要解决的关键问题、问题的范围边界就基本确定了。
Design:设计主要指领域模型的设计
Driven:1)领域驱动领域模型设计;2)领域模型驱动代码实现。
领域就是问题域,有边界,领域中有很多问题;任何一个系统要解决的那个大问题都对应一个领域;通过建立领域模型来解决领域中的核心问题,模型驱动的思想;领域建模的目标针对我们在领域中所关心的问题,即只针对核心关注点,而不是整个领域中的所有问题;领域模型在设计时应考虑一定的抽象性、通用性,以及复用价值;通过领域模型驱动代码的实现,确保代码让领域模型落地,代码最终能解决问题;领域模型是系统的核心,是领域内的业务的直接沉淀,具有非常大的业务价值;技术架构设计或数据存储等是在领域模型的外围,帮助领域模型进行落地。拆分领域 将复杂领域进行拆分,本质上就是把大问题拆分为小问题,然后各个击破的思路。然后既然把一个大的领域划分为了多个小的领域(子域),那最关键的就是要理清每个子域的边界;然后要搞清楚哪些子域是核心子域,哪些是非核心子域,哪些是公共支撑子域;然后,还要思考子域之间的联系是什么。
细化子域 从领域概念、业务规则、交互场景、业务流程等维度梳理了我们到底要什么,整理了整个系统应该具备的功能。
建模工具:聚合、实体、值对象、工厂、仓储、领域服务、领域事件。
界限上下文: 在一个领域/子域中,我们会创建一个概念上的领域边界,在这个边界中,任何领域对象都只表示特定于该边界内部的确切含义。这样边界便称为限界上下文。限界上下文和领域具有一对一的关系。 将一个限界上下文中的所有概念,包括名词、动词和形容词全部集中在一起,我们便为该限界上下文创建了一套通用语言。通用语言是一个团队所有成员交流时所使用的语言,业务分析人员、编码人员和测试人员都应该直接通过通用语言进行交流。 限界上下文之间的集成关系也可以理解为是领域概念在不同上下文之间的映射关系,因此,限界上下文之间的集成也称为上下文映射图。
贫血领域对象(Anemic Domain Object)是指仅用作数据载体,而没有行为和动作的领域对象。
领域服务
资源库:用于保存和获取聚合对象。资源库分为两种,一种是基于集合的,一种是基于持久化的。
领域事件 DDD的一个重要原则便是一次事务只能更新一个聚合实例。 最终一致性取代了事务一致性,通过领域事件的方式达到各个组件之间的数据一致性。
四色原型
开发模式的转变: 1. 传统的分层模式Action/Service/DAO,很多关于OO理论的也毫无用武之地。 使用这种开发方式,对象只是数据的载体,没有行为。以数据为中心,以数据库ER设计作驱动。 分层架构在这种开发模式下,可以理解为是对数据移动、处理和实现的过程。
2. 采用领域模型的开发方式,将数据和行为封装在一起,并与现实世界中的业务对象相映射。 各类具备明确的职责划分,将领域逻辑分散到领域对象中。
标签:
相关推荐:
最新新闻:
- 电脑闹铃怎么设置?如何用电脑设置好闹钟?
- mysql使用EXPIN脚本的执行效率 PHP综合应用介绍
- 怎么设置电脑自动开关机?设置自动开关机的具体步骤
- mysql出现无效连接属性异常如何处理?_世界快播报
- 提示ijl15.dll文件丢失或损坏怎么办?ijl15.dll文件丢失原因分析及解决方法
- linux arp 防火墙关闭 如何关闭360安全卫士的ARP防火墙?
- 如何卸载冰点还原精灵?怎么才能把他彻底删除?
- formatconverters.exe是什么软件?使用说明及注意事项
- 解锁bootloader是什么意思?解锁bootloader会清除数据吗?
- 【源代码】java.util.Vector容器源代码详解
- 领域驱动设计——Domain-drivenDesign:全球快消息
- PDG文件是什么格式?PDG文件打开方法
- trustedinstaller.exe是什么意思?如何解决其CPU占用率问题?
- IE浏览器打不开卡死崩溃了该怎么修复?有什么修复方法?
- beacon时槽什么意思?beacon时槽越大越好吗?
- wifi发射器怎么用?介绍WiFi发射器的用法步骤
- 天天最新:xlive.dll丢失怎么解决?xlive.dll没有被指定在windows运行怎么解决?
- 主板上都有哪些接口?主板上各接口都有什么用?
- rar密码有什么破解方法?解密文件有什么方法?
- 什么是百度权重?百度权重详解及影响因素
- 打印机和复印机的辐射量有多大?打印机和复印机的辐射量
- iphone表情符号如何添加?iphone表情符号添加方法 -速看
- 腾龙镜头多少钱?腾龙镜头型号及报价大全
- 【全球播资讯】门店客流量如何统计?门店客流分析的重要性
- 回顾腾讯QQ的成长发展史(1998-2016年)-环球热门
- 最新资讯:张一鸣:华为人才基因的真正密码
- 世界快资讯丨“橡皮擦”用英语该怎么说?橡皮擦的英文说法
- Arduinomega2560控制42步进电机接线图
- 全球即时看!乐视手机怎么样?乐视手机好用吗?
- win10关闭自动更新后怎么更新?win10关闭自动更新后更新方法|全球新动态
- 全球速递!tcl液晶监视器你了解多少?tcl液晶监视器的价格
- uushare书签:用于收藏网址的一种工具_世界焦点
- 扫雷和空当接龙freecell:算法深度优先_视点
- 环球热门:激光器结构原理是什么?激光器结构原理介绍
- 索尼投影机价格怎么样?sony投影机功能如何?
- 自助建站到底是什么?如何免费生成一个网站?
- 【反汇编】ce附加红警3找钱的进程:环球速递
- 快讯:索尼psp游戏机多少钱?索尼psp报价及相关介绍
- pH、水温、溶解氧的指标图 pH值偏高有什么危害吗?-环球快播报
- 三星c3500怎么样?三星c3500最新报价
- 网卡是什么?网卡有什么功能?
- 最新消息:广东2019年3月全国计算机二级考试报名时间及流程
- 硕美科g927怎么样?硕美科g927好不好?
- 一台空调一小时用多少电?空调耗电如何计算?|快报
- rayfile网盘功能介绍 rayfile网盘安装步骤及安装注意事项
- 【天天报资讯】暗黑3怎么购买?暗黑3国服购买指南
- 【技术】硬盘存储器的层次结构及原理
- 数码相机销量排行榜 看看你的品牌排第几?
- 硬盘整数分区怎么计算?NTFS整数分区数值表分享
- 马冬晗学习计划表 清华学霸计划表曝光-精选
- 最新资讯:张一鸣:华为人才基因的真正密码
- 【技术】硬盘存储器的层次结构及原理
- 【反汇编】ce附加红警3找钱的进程:环球速递
- 马冬晗学习计划表 清华学霸计划表曝光-精选
- 供应商的选择、评审和动态管理的方法 焦点快播
- 环球快讯:《霹雳五号》:一个机器人的自我意识
- mcafee修复所有漏洞 没有让客户暴露在风险之中
- rar密码有什么破解方法?解密文件有什么方法?
- 每日动态!厨房管理游戏《末日等待》Steam页面上线 支持简中
- 网飞推出AI视频短片《犬与少年》 实验性作品
- 【天天时快讯】《艾尔登法环》Steam页面后台更新 或是将有新内容发布
- 正荣地产:1月合约销售金额约为13.56亿元|世界看热讯
- rayfile网盘功能介绍 rayfile网盘安装步骤及安装注意事项
- 硬盘整数分区怎么计算?NTFS整数分区数值表分享
- bin文件夹是什么?bin文件删了有什么影响?
- Bodypaint 3D怎么用?Bodypaint 3D安装使用方法
- DLL是什么?winmm.dll丢失怎么解决?
- 硬盘温度多少度才算正常?硬盘温度过高怎么办呢?
- 积分电路是什么?积分电路的原理和作用
- XPS Viewer是什么软件?XPS Viewer的使用方法
- 小米13 Ultra曝光:2K E6曲面屏+1英寸超大底+120倍长焦-每日热议
- 天天资讯:《星球大战绝地:幸存者》9分钟实机:双持光剑砍瓜切菜
- 《猎天使魔女3》已售出104万份 贝姐魅力大|热文
- 科技裁员潮愈演愈烈!Zoom拟解雇1300人-即时焦点
- 四川针对10领域出36条政策推动经济整体好转