贫血模型和DDD模型

四川白癜风 http://pf.39.net/bdfyc/140116/4328254.html
贫血模型和DDD模型

作者:星晴(当地小有名气,小到只有自己知道的杰伦粉)

1.贫血模型1.1概念

常见的mvc三层架构

简单、没有行为

2.领域驱动设计2.1概念(年提出的)

DomainDrivenDesign

简称DDD

DDD是一种以领域为核心的设计和开发理念。DDD通过维护一个深度反应领域概念的模型,以及提供了可行的经过实践校验的大量模式来应对领域的复杂性

2.2领域模型的特点

对业务领域做了建模

--细粒度的类,易于扩展,容易复用

--可以应对复杂的业务逻辑

--需要经验掌握

简单的领域模型

--几乎和数据库中的表一一对应

复杂领域模型

--使用了继承、组合、设计模式等各种手段

2.3什么是领域

收入确认

机票预订

金融

。。。

2.4通用语言

UML图、建模

2.5DDD分层架构

用户界面/展现层

应用层

领域层

基础设施层

领域层就是把应用层的逻辑放到它这里

2.6在领域层有什么东西2.6.1实体

唯一标志

--对象不是由属性定义的,而是标志定义的

--对象内容的变化不会影响标识符

--无论保存到硬盘,装入内存,通过网络发送,标识符都不变

除了标志外,哪些东西应该成为实体的属性?

--抓住实体对象定义的最基本特征,用于识别,查找或匹配对象的特征

--只添加那些对概念至关重要的行为和这些行为所需的属性

2.6.2值对象(valueObject)

--对象是根据值来确定的

--可以在不同的实体中使用

--值对象通常是不可变的

--Color,Point,Money...

2.6.3领域服务

有些领域逻辑是动词

--表示了一种重要的行为很难映射为对象,无法归纳到实体和值对象当中

--例如:转账

特征

--服务执行的操作涉及一个领域概念,这个领域概念通常不属于一个实体或者值对象

--被执行的操作涉及到领域中的其他的对象

--操作是无状态的

聚合(高内聚,低耦合就是这个意思)

一堆对象组合有边界的服务

2.6.4当构造一个复杂的对象时...

怎么解决这些问题?

--聚合的对象比较多

--构造函数参数很多

--逻辑很复杂

2.7模型的分裂(针对大型复杂系统)

领域

--例如电子商务系统

子领域

--一个领域在逻辑思维分离的部分

--例如订单、产品目录、库存、发票

界限上下文

--领域模型所生产的边界



转载请注明地址:http://www.quanyii.com/jbgr/82838.html
  • 上一篇文章:
  • 下一篇文章: 没有了
  • 热点文章

    • 没有热点文章

    推荐文章

    • 没有推荐文章