领域驱动设计有关内容

来源:互联网 发布:linux fat挂载移动硬盘 编辑:程序博客网 时间:2024/06/06 00:22

DDD相关书籍:《Domain-driven design:领域驱动设计:软件核心复杂性应对之道》 ,Martin Flower的《企业应用架构模式》,effective java,实现领域驱动设计


传统的三层架构:

表示层(MVC)

业务逻辑层(service、serviceimpl)

数据访问层(dao、daoimpl、orm)

DDD的经典四层:

表示层(mvc)

应用层

领域层(实体、值对象、聚合(领域模型)仓储接口-依赖倒置、领域服务)

基础设施层(仓储实现、orm)


分层原则

以分布式和平行多人开发为基础,每个层应当充分划分自身职责,不做多余的工作。如UI层不能混入业务逻辑控制内容。

以业务领域为核心,其它层依赖业务层。

业务层应当高度封装业务逻辑,对UI层以应用层提供交流方式。


什么环境下考虑DDD实现架构?

1、业务逻辑中大型规模

2、应对分布式(需要扩充DTO)

3、应对外部系统(依赖倒置、扩充适配器、防腐层)

4、应对角色多变(需要扩充DCI ,即数据、上下文、交互模式)


DDD设计模式下考虑的扩充

1、提高查询命令性能:CQRS(命令查询职责分离)

2、IOC

3、AOP

4、工厂


DTO的概念

用于视图层和领域层交互

只有set get,将视图层和领域层对象隔离


对象模型的两类

贫血模型 、充血模型


领域模型概念

聚合 聚合根 基本责任  交互责任(角色责任)

核心领域、通用子领域、领域前景说明

用工厂完成实体或聚合不能自理的工作。


聚合对象通讯

消息依赖、领域事件(用于强一致性以外的功能可考虑使用,例如转账后发送消息,消息不会影响业务结果),业务场景复杂情况下可减低复杂度,并实现最终一致性。另外可以提高分布式性能,松散耦合。


设计分析需要知道的理论

四色原型

迪米特法则(最少知道原则)

适配模式

装饰模式

工厂模式

不变性


建模几种必备图

用例图

类图

时序图

数据库关系图


可参考借鉴的模式

共享内核模式,客户/供应商团队模式,Conformist(跟随者)模式,防护层模式,独立自主模式,开放主机模式,公共语言模式

原创粉丝点击