架构那点事系列二 - 大话3D

本文探讨了领域驱动设计(DDD)在软件架构中的应用,对比了对象模型与领域模型的区别,强调了领域模型在表达业务规则和逻辑上的重要性。文章介绍了DDD的分层架构,包括基础结构层、领域层、应用层和表现层,并讨论了领域对象的构建、聚合根的识别以及仓储和领域服务的角色。此外,提到了领域模型中验证、数据传输对象和工厂模式的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       近几年,架构领域兴起了很多新型架构思想。DDD成为继OOD之后又一个被人津津乐道的设计风格。.这里结合自己工作实践,和大家分享一下自己的DDD实践观,首先向大家推荐一篇关于DDD的文章(http://msdn.microsoft.com/en-us/magazine/hh547108.aspx.看看微软的卓越工作,从DataTable到EntityObject. - Net 4.0来了,随之为我们带来了EntityFramework)。这里,我们抛开语言特性,从本质上分析一下DDD的诸多实践要点。

       首先,我们需要知道DDD和OOD有何不同?在此之前,我们先从模型上进行下对比。对象模型,我们都知道它封装了数据(属性)和行为(方法和事件)。而领域模型则是驻足在某领域内的对象模型。相应地,它的行为是用于表达业务规则和特定的业务逻辑。更重要的是,每个实体都可能处于某一状态,并且与一组动态的验证规则相绑定;领域模型表述的是领域中各个类及其之间的关系。类关系是多样的,比如组合、聚合、继承、实现等,而数据模型不是一对多,就是多对多。从领域驱动设计的角度看,数据库只不过是存储实体的一个外部机制,是属于技术层面的东西。数据模型主要用于描述领域模型对象的持久化方式,应该是先有领域模型,才有数据模型,领域模型需要通过某种映射而产生相应的数据模型(数据依赖于实体,是实体的状态,离开实体的数据是毫无意义)。

       ok,有了基本认识后,我们再来看一下领域驱动设计所倡导的分层。如图:

     

     基础结构层:不解释了。注意,这部分不会涉及任何业务逻辑。传统的数据访问层,也被放在了该层当中,因为

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值