暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

DDD分层架构与代码模型

看点有用的 2021-11-08
2562

一、概述

DDD主要用来从业务领域视角划分领域边界,构建通用语言进行高效沟通,通过业务抽象,建立领域模型,维持业务和代码的逻辑一致性。今天我们主要聊下DDD分层架构与代码模型这部分。


二、分层架构

三层架构和四层架构对比如下:

三层架构模型分为接口层,逻辑层,数据访问层,三层架构更简洁,适合快速开发迭代。


DDD四层架构分为用户接口层,应用层,领域层,基础层。

Interfaces(用户接口层):它主要存放用户接口层与前端交互、展现数据相关的代码。前端应用通过这一层的接口,向应用服务获取展现所需的数据。这一层主要用来处理用户发送的 Restful 请求,解析用户输入的配置文件,并将数据传递给 Application 层。数据的组装、数据传输格式以及 Facade 接口等代码都会放在这一层目录里。


Application(应用层):它主要存放应用层服务组合和编排相关的代码。应用服务向下基于微服务内的领域服务或外部微服务的应用服务完成服务的编排和组合,向上为用户接口层提供各种应用数据展现支持服务。应用服务和事件等代码会放在这一层目录里。


Domain(领域层):它主要存放领域层核心业务逻辑相关的代码。领域层可以包含多个聚合代码包,它们共同实现领域模型的核心业务逻辑。聚合以及聚合内的实体、方法、领域服务和事件等代码会放在这一层目录里。


Infrastructure(基础层):它主要存放基础资源服务相关的代码,为其它各层提供的通用技术能力、三方软件包、数据库服务、配置和基础资源服务的代码都会放在这一层目录里。


架构根据耦合的紧密程度可以分为两种:严格分层架构和松散分层架构。严格分层架构,任何层只能对位于其直接下方的层产生依赖。松散分层架构,它允许某层与其任意下方的层发生依赖。
在严格分层架构中,领域服务只能被应用服务调用,应用服务只能被用户接口层调用,服务是逐层对外封装或组合的,依赖关系清晰。
在松散分层架构中,领域服务可以同时被应用层或用户接口层调用,服务的依赖关系比较复杂且难管理。


三、代码模型

代码模型如下,每层目录职责见图中说明:


数据库
文章转载自 看点有用的,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

PHP网站源码龙岗品牌网站设计横岗网站定制惠州SEO按天计费大鹏阿里店铺运营宝安网站关键词优化民治网络营销平湖设计公司网站深圳网站建设设计大芬百度网站优化排名双龙设计网站荷坳百度网站优化排名荷坳网站推广系统西乡网站改版荷坳seo观澜至尊标王福田网站搜索优化福田推广网站观澜外贸网站设计永湖网络广告推广布吉设计网站光明优化塘坑阿里店铺运营大芬网站改版光明网站设计布吉网络推广龙岗百度网站优化排名横岗百搜标王丹竹头seo网站优化罗湖网页制作龙华网站搜索优化歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

PHP网站源码 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化