文档章节

应用服务和领域服务

猪刚烈
 猪刚烈
发布于 2014/10/12 11:41
字数 548
阅读 17
收藏 0

      在领域驱动设计中,service有两种:领域服务和应用服务,单纯从它们的定义来看,两者很容易区分,前者是与业务逻辑密切相关的服务,往往处理复杂的业务请求。后者则是面向应用角度的一些支持功能,与业务本身并无太大关联。一些典型的应用服务有:发送电子邮件通知用户,对密码进行加密解密等等。在oobbs中,要在导航栏中显示当前位置的路径(一个像:index->forum1->thread1的路径)也是由一个应用层面的服务负责的。但是正如《领域驱动设计》一书所说的,实际上,区分领域服务和应用服务是一件很困难的事件,因为很多时候一个服务既有应用相关的东西,又有业务方面的内容,就像上面提到的例子,路径本身也反映了业务对象之间的层次关系,因此这个应用服务也必然要涉及到领域模型的一些细节。

      过去曾经纠结过是否应该提供两个服务层,下层的领域服务层属于领域模型的一部分,上层的应用服务层属于应用层。但是这个方案在实践中被渐渐地否定了。一方面,正如上面所说的,应用服务并不是凌驾于业务层之上的一层服务,某些时候它们相互独立,不存在相互的依赖关系,而更多的时候,它们是糅合合在一起一个整体,很难再进行细分,也没有必要再这样做。如果真得强行划分出应用服务层和领域服务层,那么大多数应用层服务将只能是对领域层服务的简单调用。最根本的原因还是刚才提到的,应用服务和领域服务没有上下之分,要么相对独立,要么揉合在一起。因此,系统应该只提供一个统一的服务层即可。

本文转载自:http://blog.csdn.net/bluishglc/article/details/6009643

猪刚烈

猪刚烈

粉丝 22
博文 708
码字总数 110
作品 1
海淀
程序员
私信 提问
加载中

评论(0)

基于 Spring 设计并实现 RESTful Web Services

在本教程中,你将会使用Spring来创建一个具有生产力的RESTful网络服务。 为什么用RESTful网络服务? 从和Amazon Web Services的整合,到聚合多个数据源,RESTful网络服务遵从了Roy Fielding的...

noday
2013/10/22
7.6K
6
DDD理论学习系列(8)-- 应用服务&领域服务

DDD理论学习系列——案例及目录 1. 引言 单从字面理解,不管是领域服务还是应用服务,都是服务。而什么是服务?从SOA到微服务,它们所描述的服务都是一个宽泛的概念,我们可以理解为服务是行...

圣杰
2017/06/30
0
0
由Spring应用的瑕疵谈谈DDD的概念与应用(一)

Spring 框架已经成为构建企业级 Java 应用事实上的标准了,众多的企业项目都构建在 Spring 项目及其子项目之上,特别是 Java Web 项目,很多都使用了 Spring 并且遵循着 Web、Service、Dao 这...

aoho
2019/01/09
0
0
架构设计中服务层的简单理解

在ddd设计中我们经常会提到服务层,服务层是什么?职责是什么?有什么好处?。 先看简单的层次图(注:这里并没有考虑其他多余的领域逻辑数据层存储,或者UOW这些细节) 我的理解是服务层是处...

zting科技
2017/01/10
0
0
如何高效实现从单体架构向微服务架构的过渡?

你很有可能正在处理大型复杂的单体应用程序,每天开发和部署应用程序的经历都很缓慢而且很痛苦。微服务看起来非常适合你的应用程序,但它也更像是一项遥不可及的必杀技。如何才能走上微服务架...

老道士
2019/06/12
21
0

没有更多内容

加载失败,请刷新页面

加载更多

Android Binder机制 - interface_cast和asBinder讲解

研究Android底层代码时,尤其是Binder跨进程通信时,经常会发现interface_cast和asBinder,很容易被这两个函数绕晕,下面来讲解一下: interface_cast 下面根据下述ICameraClient例子进行分析...

天王盖地虎626
23分钟前
35
0
杭州哪里有开建材发票

杭州哪里有开建材发票【1.3.7 - 1.0.9.5 - 5.9.1.9.】李生,,诚、信、合、作,保、真、售、后、保、障、长、期、有、效。adb的全称为Android Debug Bridge,是And...

143770
27分钟前
48
0
Java @Deprecated Annotation(注解)

在本部分的快速指南中,我们将会查看 Java 的 deprecated API 和如何在程序中使用 @Deprecated 注解。 @Deprecated Annotation(注解) 作为程序的进化和迭代,随着时间的推移,在项目中总会...

honeymoose
45分钟前
29
0
郑州开纸制品发票

郑州开纸制品发票【132 * 50 52 * 90 89】罗生,诚、信、合、作,保、真、售、后、保、障、长、期、有、效。adb的全称为Android Debug Bridg...

zhangyongli
今天
65
0
OSChina 周四乱弹 —— 失业后的阳光太刺眼了

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @大又 :分享Jack Stauber的单曲《Fighter》 《Fighter》- Jack Stauber 手机党少年们想听歌,请使劲儿戳(这里) @theLovelyBugfly :笑死我...

小小编辑
今天
146
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部