菜单
  

     

    层结构的划分是很有必要的,只有清晰的结构,那么最终的领域设计才宜用,比如用户要预定航班,向Application Layer的service发起请求,而后Domain Layler从Infrastructure Layer获取领域对象,校验通过后会更新用户状态,最后再次通过Infratructure Layer持久化到数据库中。

     

    实体(Entity) & 值对象(Value Object)

    实体与面向对象中的概念类似,在这里再次提出是因为它是领域模型的基本元素。在领域模型中,实体应该具有唯一的标识符,从设计的一开始就应该考虑实体,决定是否建立一个实体也是十分重要的。

     

    值对象和我们说的编程中数值类型的变量是不同的,它仅仅是没有唯一标识符的实体,比如有两个收获地址的信息完全一样,那它就是值对象,并不是实体。值对象在领域模型中是可以被共享的,他们应该是“不可变的”(只读的),当有其他地方需要用到值对象时,可以将它的副本作为参数传递。

     

    服务(Services)

    当我们在分析某一领域时,一直在尝试如何将信息转化为领域模型,但并非所有的点我们都能用Model来涵盖。对象应当有属性,状态和行为,但有时领域中有一些行为是无法映射到具体的对象中的,我们也不能强行将其放入在某一个模型对象中,而将其单独作为一个方法又没有地方,此时就需要服务.

     

    服务是无状态的,对象是有状态的。所谓状态,就是对象的基本属性:高矮胖瘦,年轻漂亮。服务本身也是对象,但它却没有属性(只有行为),因此说是无状态的。

     

    PS:这与我们常说的服务器的状态是两个概念,无状态的服务器是指,对服务器来说每次接收到的HTTP请求都像是客户端第一次发送的一样;而有状态的服务器就会存储客户端的状态,常见的就是Cookie&Session

     

    服务存在的目的就是为领域提供简单的方法。为了提供大量便捷的方法,自然要关联许多领域模型,所以说,行为(Action)天生就应该存在于服务中。

     

    服务具有以下特点:

     

    a)服务中体现的行为一定是不属于任何实体和值对象的,但它属于领域模型的范围内

    b)服务的行为一定设计其他多个对象

    c)服务的操作是无状态的

     

    PS:不要随意放置服务,如果该行为是属于应用层的,那就应该放在那;如果它为领域模型服务,那它就应该存储在领域层中,要避免业务的服务直接操作数据库,最好通过DAO。

     

    模块(Moudles)

    对于一个复杂的应用来说,领域模型将会变的越来越大,以至于很难去描述和理解,更别提模型之间的关系了。模块的出现,就是为了组织统一的模型概念来达到减少复杂性的目的的。而另一个原因则是模块可以提高代码质量和可维护性,比如我们常说的高内聚,低耦合就是要提倡将相关的类内聚在一起实现模块化。

    模块应当有对外的统一接口供其他模块调用,比如有三个对象在模块a中,那么模块b不应该直接操作这三个对象,而是操作暴露的接口。模块的命名也很有讲究,最好能够深层次反映领域模型。

    聚合(Aggregates)

    聚合被看作是多个模型单元间的组合,它定义了模型的关系和边界。每个聚合都有一个根,根是一个实体,并且是唯一可被外访问的。正是如此,聚合可以保证多个模型单元的不变性,因为其他模型都参考聚合的根。所以要想改变其他对象,只能通过聚合的根去操作。根如果没有了,那么聚合中的其他对象也将不存在。

  1. 上一篇:琉璃神社,琉璃神社神秘代码
  2. 下一篇:permission denied解决方法没有权限
  1. 我相信青春没有地平线是什么意思

  2. 不要告诉妈妈哦王绎龙什么意思

  3. 家有帅哥初长成的意思

  4. 山东医药是什么期刊?山东医药好投吗

  5. 指望不就是什么意思

  6. yuojizz是什么意思

  7. 回程路由是什么意思?什么时候需要回程路由

  8. 多智能体系统一致性问题研究

  9. 小学课堂教学效率国内外研究现状和参考文献

  10. PLC焊机电气控制系统设计开题报告

  11. Bootstrap的OpenGL人体模型仿真

  12. 跨国企业全球营销策略的市场定位调查

  13. 上市公司债务税盾文献综述和参考文献

  14. MATLAB动车组列车牵引变流...

  15. PLC启闭机液压系统设计及其故障诊断

  16. 淮安乐天玛特连锁超市4P营销策略分析

  17. 友谊质量调查问卷表

  

About

751论文网手机版...

主页:http://www.751com.cn

关闭返回