对DDD中领域服务的理解
CZ
能不能清晰具体区分service和实体的区别
网上有人用DCI来解决 不知道对不对
STST
我复习下DDD中的服务的概念了参与讨论啊
CZ
这个我也看过 但是太过于笼统
STST


STST
复习了一遍,我是这么理解的
STST
假设一个道路模拟系统,里面有两个重要概念,汽车,加油站
汽车有一个职责叫: void 加油(int capacity)
加油站有一个职责叫:int 供油(int maxCapacity)
那么汽车行驶过程中需要加油了,怎么办,这就需要协调加油站和汽车两个领域概念
需要下面一个重要的领域职责: bool 加油(加油站,汽车,capacity)
这个职责放到汽车或者加油站都不合适,因为加油站不应该依赖汽车,汽车业不应该依赖加油站,这都是没必要的依赖
我们找不到一个有意义的概念来放这样一个职责,因为其只是一个行为,跨越了多个实体概念的行为,这就应该引入"服务",会比较自然
CZ
能不能找一个不要用到领域服务的,但实体又引用另一个实体的例子呢
STST
这就多了,加油站 引用 加油机,聚合引用内部的实体
这个例子其实也是DIP的一个典型例子,加油站 汽车 位于 服务 的下层,其职责由服务的需求来决定,底层依赖高层
CZ
不好意思啊 又要麻烦你了 就是那个你的加油站引用加油机这个例子中,在某个场景下。我也可以把他们的交互 放到一个领域服务中去
STST 2015/8/17 14:06:41
就是说应该放到领域服务里阿
对DDD中领域服务的理解的更多相关文章
- $q -- AngularJS中的服务(理解)
描述 译者注: 看到了一篇非常好的文章,如果你有兴趣,可以查看: Promises与Javascript异步编程 , 里面对Promises规范和使用情景,好处讲的非常好透彻,个人觉得简单易懂. ...
- 驱动领域DDD的微服务设计和开发实战
你是否还在为微服务应该拆多小而争论不休?到底如何才能设计出收放自如的微服务?怎样才能保证业务领域模型与代码模型的一致性?或许本文能帮你找到答案. 本文是基于 DDD 的微服务设计和开发实战篇,通过借鉴 ...
- 基于DDD的.NET开发框架 - ABP领域服务
返回ABP系列 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称. ASP.NET Boilerplate是一个用最佳实践和流行技术开发现代WEB应 ...
- ABP理论学习之领域服务
返回总目录 本篇目录 介绍 IDomainService接口和DomainService类 样例 创建一个接口 服务实现 调用应用服务 一些讨论 何不只使用应用服务 如何强制使用领域服务 介绍 领域服 ...
- ABP入门系列(18)—— 使用领域服务
ABP入门系列目录--学习Abp框架之实操演练 源码路径:Github-LearningMpaAbp 1.引言 自上次更新有一个多月了,发现越往下写,越不知如何去写.特别是当遇到DDD中一些概念术语的 ...
- 基于DDD的微服务设计和开发实战
你是否还在为微服务应该拆多小而争论不休?到底如何才能设计出收放自如的微服务?怎样才能保证业务领域模型与代码模型的一致性?或许本文能帮你找到答案. 本文是基于 DDD 的微服务设计和开发实战篇,通过借鉴 ...
- 初识ABP vNext(11):聚合根、仓储、领域服务、应用服务、Blob存储
Tips:本篇已加入系列文章阅读目录,可点击查看更多相关文章. 目录 前言 开始 聚合根 仓储 领域服务 BLOB存储 应用服务 单元测试 模块引用 最后 前言 在前两节中介绍了ABP模块开发的基本步 ...
- 聊一聊中台和DDD(领域驱动设计)
本次分享价值:本次分享主要针对中台.微服务和领域模型的理念.本质及其构建方法论进行探讨.对领域分析的价值所在就是寻求"千变万化"中相对的"稳定性.第一性",然后 ...
- 初探领域驱动设计(2)Repository在DDD中的应用
概述 上一篇我们算是粗略的介绍了一下DDD,我们提到了实体.值类型和领域服务,也稍微讲到了DDD中的分层结构.但这只能算是一个很简单的介绍,并且我们在上篇的末尾还留下了一些问题,其中大家讨论比较多的, ...
随机推荐
- [转]dojo/mouse
dojo/mouse Authors:Kris Zyp Project owner:Kris Zyp since:1.7.0 Contents Usage enter leave mouseButto ...
- delphi Edit 控制最大值,只能输入数字型 控制小数位数
delphi语言受众多程序员追捧,主要原因之一就是它有很多第三方的控件可供使用.很多资深的delphi程序员都把自己积累的函数.过程等设计成控件,以方便使用,提高开发效率. 本文通过一个只允许输入数字 ...
- 在 Linux 安装 JDK 和 tomcat(菜鸡级别)
安装JDK 卸载 OPENJDK rpm -qa|grep jdk // 查看当前的jdk情况 yum -y remove java java-1.7.0-openjdk* // 卸载openjdk ...
- JavaScript 执行环境(作用域)总结
所有变量(包括基本类型和引用类型)都存在一个执行环境(也称为作用域)当中,这个执行环境决定了变量的生命周期,以及哪一部分可以访问其中的变量. 以下是关于执行环境的几点总结: 执行环境有全局执行环境(全 ...
- 【bzoj4052】[Cerc2013]Magical GCD 暴力
题目描述 给出一个长度在 100 000 以内的正整数序列,大小不超过 10^12. 求一个连续子序列,使得在所有的连续子序列中,它们的GCD值乘以它们的长度最大. 样例输入 1 5 30 60 2 ...
- [CF409F]000001
题目大意:输入一个数,输出一个数(愚人节系列) 题解:$OEIS$的$A000001$(原来我不想写的,但是洛谷的智能推荐推荐我做这个...是不是我太菜了) 卡点:无 C++ Code: #inclu ...
- C++的一些小操作、常用库及函数(持续更新)
1. 强制保留n位小数(位数不足则强制补零) 头文件: #include <iomanip> 在输出前: cout<<setprecision(n); 也有不用头文件的方式,在 ...
- [LeetCode] decode ways 解码方式
A message containing letters fromA-Zis being encoded to numbers using the following mapping: 'A' -&g ...
- C++——继承时的this指针
1.this指针只在类的成员函数中使用,当类的成员函数需要用到自己的指针时就要用到this指针.但静态函数不能使用this关键字,其解释是:因为this是个引用,哪个对象调用方法就引用哪个对象. 而静 ...
- C#弱引用
加菲猫 Just have a little faith. C#弱引用 .NET框架提供了另一有趣的特色,被用于实现多样的高速缓存.在.NET中弱引用通过System.WeakReference类实现 ...