DDD:实体如何处理外部依赖
场景
修改用户名时,要验证用户名的唯一性。
实现1
1 public class User 2 { 3 public void ChangeUsername(string newUsername) 4 { 5 //使用服务定位器获取IUsernameUniqueService ,执行验证。 6 } 7 }
实现2
1 public class User 2 { 3 public void ChangeUsername(string newUsername) 4 { 5 EventBus.Send(new UsernameChangedEvent(newUsername)); 6 } 7 } 8 9 public class UsernameChangedEventHandler 10 { 11 public UsernameChangedEventHandler(IUsernameUniqueService usernameUniqueService){} 12 13 public void Process(UsernameChangedEvent){} 14 }
实现3
1 public class ChangeUsernameCommandHandler 2 { 3 public ChangeUsernameCommandHandler(IUsernameUniqueService usernameUniqueService){} 4 5 public void Process(ChageUsernameCommand){} 6 } 7 8 public class User 9 { 10 public void ChangeUsername(IUsernameUniqueService usernameUniqueService, newUsername){} 11 }
实现4
1 public class UsernameChangeService 2 { 3 public UsernameChangeService(IUsernameUniqueService usernameUniqueService){} 4 5 public void ChangeUsername(Guid userId, string newUsername){ } 6 } 7 8 public class User 9 { 10 Internal void ChangeUsername(string newUsername){ } 11 }
实现5
1 public class UsingUser 2 { 3 public UsingUser(User user, IUsernameUniqueService usernameUniqueService){} 4 5 public void ChangeUsername(string newUsername){ } 6 } 7 8 public class User 9 { 10 Internal void ChangeUsername(string newUsername){ } 11 }
备注
到底用哪一个,先不做评判。
DDD:实体如何处理外部依赖相关推荐
- 将Wiremock集成到Spring Boot Java Web应用程序中以模拟外部依赖关系
介绍 WireMock是用于基于HTTP的API的模拟服务器. 有些人可能会将其视为服务虚拟化工具或模拟服务器. 它使您能够存根所需的API或其他外部依赖项,以加快本地开发速度. 它支持测试真实API ...
- 如何处理好依赖关系[Reprint]
Source: http://book.csdn.net/bookfiles/383/10038314337.shtml "依赖"是和"变化"紧密联系在一起的概 ...
- PCL1.9的PCLConfig.cmake文件找不到eigen等外部依赖
PCL1.9的PCLConfig.cmake文件找不到eigen等外部依赖 由于需要用到PCL中on_nurbs模块做拟合,但是ros自带的pcl中没有该模块.所以源码安装了PCL 1.9,但是在使用 ...
- vs 外部依赖项、附加依赖项以及如何添加依赖项目
我们在 VS 中创建 Win32 控制台应用程序,vs 会为解决方案创建默认地创建 4 个 filters(资源管理器中没有对应的目录和文件夹): 头文件:一般为 .h 文件 外部依赖项 源文件:一般 ...
- onos中引入外部依赖
当前版本的onos使用的是bazel进行依赖管理的 那么对于外部依赖的管理也由bazel负责 在bazel的官方文档中也有对应的说明,详细可参考https://bazel.google.cn/exte ...
- 通过命令运行jar包(指定外部依赖jar包)
前提条件: 1.本机已安装jdk 2.已配好jdk的环境变量 通过以下命令查询jdk是否配好 java -version 执行出现java版本信息即配好 lizhi@LiZhideMacBook-Ai ...
- 被问麻了,Spring 如何处理循环依赖?
点击关注公众号,利用碎片时间学习 前言 Spring如何处理循环依赖?这是最近较为频繁被问到的一个面试题,在前面Bean实例化流程中,对属性注入一文多多少少对循环依赖有过介绍,这篇文章详细讲一下Spr ...
- 【软件项目管理】任务(活动)之间的排序依据主要有:强制性依赖关系、软逻辑关系、外部依赖关系
任务(活动)之间的排序依据主要有:强制性依赖关系.软逻辑关系.外部依赖关系. 项目各项任务(活动)之间存在相互联系与相互依赖关系,根据这些关系安排各项活动的先后顺序.确定任务(活动)之间关联关系的依据 ...
- Spring 如何处理循环依赖?
Spring 如何处理循环依赖? 文章目录 Spring 如何处理循环依赖? 项目环境 1.什么是循环依赖? 2.Spring 如何来处理循环依赖? 2.1 allowCircularReferenc ...
最新文章
- json - 使用 json-lib
- django 快速搭建blog
- mysql协议重传_TCP协议详解
- 在Action类中获得HttpServletResponse对象的四种方法
- 交换机命令行配置与VLAN
- 原来 JS 也支持跟 Lua 语意一样的内嵌函数的闭包概念
- Oracle join多表查询
- 大江大海 —— 淮河、澜沧江(湄公河)
- 同网段的VLAN隔离
- APP推广运营手册全集
- 【学习笔记】SAP资产模块
- 爬虫之-bilibili视频下载-接口分析
- Revit二次开发——标记/标注自动避让思路分享
- 58同城数据爬取+可视化分析
- C语言字母常量所对应的数字,关于c语言常量的正确表示方法介绍
- 腾讯云轻量应用服务器器使用技巧-腾讯云OrcaTerm的上传下载
- 分布式应用:从CAP理论到PACELC理论
- testbed笔记:基类或者成员对象的构造函数调用问题
- Oracle 11G 数据迁移 到 12C
- python中“end=”是什么意思?
热门文章
- 驱动下通过进程PID获得进程名 (动态获取ImageFileName在EPROCESS结构体中的相对偏移)...
- 第4课 - 深入浅出处理器(续)
- 利用反射操作bean的属性和方法
- Apache Httpd + Subversion 搭建HTTP访问的SVN服务器
- c++设置不适用预编译头
- MFC中的Document-View结构
- 微信小程序字符串与对象相互转换
- IOS15.0的适配
- et操作 python wps_拿起来就用的office二次开发(python,win32com使用经历总结)
- java类加载过程_面试官:java类的加载过程