文档章节

应用服务和领域服务

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

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

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

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

共有 人打赏支持
猪刚烈
粉丝 22
博文 708
码字总数 110
作品 1
海淀
程序员
架构设计中服务层的简单理解

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

zting科技
2017/01/10
0
0
领域驱动设计和开发实战-住房贷款处理系统

本文先阐述领域驱动设计的基本概念,然后以住房贷款系统的需求为引线,一步一步实战讲解如何进行领域驱动设计的开发,文章来源与网上,先贴出与大家一起分享。 李锡远 2010-8-20 背景 领域驱...

tavenli
2010/08/20
0
0
移动应用市场2012年3大趋势:HTML5 日渐成熟

[导读]这个市场在2012呈现出了3个最重要的发展趋势:HTML5日渐成熟、位置服务在移动领域获得更广泛的应用以及为应用开发商服务的初创公司越来越多。 移动应用市场2012年呈现出3大重要发展趋势...

oschina
2012/12/21
2.2K
5
企业应用架构模式学习(九):领域逻辑模式

前八章主要从宏观的高度,大的方面来表述一个企业应用应该有 哪些方面的内容,如何开发企业应用的简单介绍。后面十个章节是本书的主体,是关于模式的详细参考手册,每个模式都给出使用方法和...

大风起兮
2013/06/03
0
0
全球公有云介绍

时至今日,云计算已经不再只是个概念。全球各企业都在逐步尝试或已经部分和全面的使用公有云来建立他们的IT系统。特别是互联网公司,如Netflix,他的所有IT系统都构建在AWS上。在中国,各级政...

kdouglas
2017/05/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Go语言_通神之路(2)

1、包 每个Go程序都是由包构成,从main包开始运行,就是我上一篇讲到的,都是从main函数开始执行,但是必须在main包下面! package mainimport ( "fmt" "math/rand")func ...

木九天
昨天
4
0
51.php-fpm的pool 慢日志 open_basedir 进程管理

12.21 php-fpm的pool 12.22 php-fpm慢执行日志(测试时报错) 12.23 open_basedir 12.24 php-fpm进程管理 12.21 php-fpm的pool: php-fpm里的pool也叫池子,咱们之前加入过www的配置,这个w...

王鑫linux
昨天
0
0
java内存模型概述

1、Java虚拟机运行时数据分区图 程序计数器:线程私有,是一块较小的内存空间,它是当前线程所执行的字节码文件的行号指示器 java虚拟机栈:线程私有,其生命周期与线程相同,这也就是我们平...

京一
昨天
1
0
shell学习之test语法

因为if-then语句不能测试退出状态码之外的条件,所以提供了test, 如果test命令中列出的条件成立,test命令就会退出并返回退出状态码0;如果条件不成立,test命令就会退出并返回非零的退出状态...

woshixin
昨天
0
0
openJDK之如何下载各个版本的openJDK源码

如果我们需要阅读openJDK的源码,那么需要下载,那么该去哪下载呢? 现在JDK已经发展到版本10了,11已经处于计划中,如果需要特定版本的openJDK,它们的下载链接在哪呢? 1.openJDK的项目 链接...

汉斯-冯-拉特
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部