领域模型-服务 什么是领域模型

服务Service是领域模型中的一种重要模式。在某些情况下最清楚,最实用的设计会包含一些特殊的操作,这些操作从概念上讲不属于任何对象。如果勉强的把这些操作归属到Entity或ValueObject中,那么不是扭曲了基于模型的对象定义,就是人为的增加了一些无意义的对象。

服务是在整个模型中作为独立接口的操作,定义Service的时候需要使用模型语言,同时Service本身无状态。如果说Entity强调的是行为,那么Service则强调的是操作,而且这个操作强调的是和一个或多个对象的关系,因此Service往往会以动宾方式进行命名。

资金转账功能即属于一种领域层的Service,其原因是这个功能不是账户对象某一个对象实例的行为,而是多个对象实例的行为。获取用户信用等级也可能是领域层的Service,因为不仅仅是涉及到一个对象,而且是涉及到多个对象协同才能给完成,而不是属于单一对象的职责。

结合系统内的SOA化,基于上面的原则对于服务的理解做一些扩展。对于领域层提供出来的服务本身应该整个领域层核心能力的接口暴露,只是暴露方式是通过服务的方式暴露出来。这些服务我们建议是业务服务而不是简单的数据传递,服务本身有明确的业务规则和业务含义,这样更加能够体现领域的核心作用,封装各种业务逻辑而不是简单的DTO或数据CRUD操作而已。

基于上面思考,我们期望不仅仅是将不属于单个对象职责的内容放到Service中,也希望将单个对象需要暴露的核心业务能力或接口放到Service中。对于应用层和领域层的关系而言,应用层调用服务接口,而逻辑层则是具体的服务实现。逻辑层和领域层只能通过Service进行交互。对于Factory封装复杂对象的创建和管理,Repository负责数据的持久化,Factory本身并不体现业务能力,所有的业务能力全部体现在Service中来实现。

再转移到应用层,结合SOA参考服务架构,对于应用层可能还有Service,这里的Service应该理解为一种组合服务,跨多个Service的一种能力组合。这种组合服务本身还可以聚合为Service,实现一种复用。或者就是应用层直接通过代码来实现多个服务的装配,服务流转。注意在这种模式先应用层重点是服务的流转,服务的协同,服务的组合,而不是具体业务规则的实现。业务规则和能力完全在领域层内聚。
领域模型-服务 什么是领域模型

  

爱华网本文地址 » http://www.aihuau.com/a/25101015/263762.html

更多阅读

中国联通初始服务密码是什么 怎么设置手机密码锁屏

中国联通初始服务密码是什么——简介 初始服务密码是什么,这个问题估计只有当您需要登录官网或者自助办理业务时会需要的到,那么这个密码到底是什么呢?其实我最初遇到这个问题也是上网搜索,可是都不行。最后,偶然间还是让我找到了方式,下

什么是人本主义学习理论?--殷虹的博客

什么是人本主义学习理论?什么是人本主义学习理论?人本主义形成于20世纪60年代,它强调人的自主性、整体性和独特性,认为学习是个人自主发起的、使个人整体投入其中并产生全面变化的活动,学生内在的思维和情感活动极为重要;个人对学习的投入

什么叫软文,什么是软文广告 软文广告是什么意思

什么是软文?简单点说,就是宣传性、阐释性的文章。无论你是宣传产品,还是宣传自己的企业文化,树立自己的企业形象,或者是宣传第三方网络媒体的文章,都属于软文。那么什么是软文广告?软文广告也就是软文营销,是广告形式的一种。在网络时代的今

声明:《领域模型-服务 什么是领域模型》为网友过分钟情分享!如侵犯到您的合法权益请联系我们删除