大佬教程收集整理的这篇文章主要介绍了域驱动设计 – 域驱动设计中跨有界环境的实体,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
给予公司员工在(例如)人力资源背景下,该人有姓,姓,地址,工资参考号和银行帐号.但在会计背景下,所有相关的是薪资参考号和银行账户.
您在会计上下文中是否在HR环境中有employee实体和Value-Type(例如SalariedemployeE)?
class employee { public BankAccount BankAcountDetails { get; set; } public String FullName { get; set; } public Address ResidentialAddress { get; set; } public String SalaryRef { get; set; } }
Salariedemployee类(??):employee的value-type
class Salariedemployee { public Salariedemployee(String salaryRef,BankAccount bankAcountDetails) { ... } public String SalaryRef { get; } public BankAccount BankAcountDetails { get; } }
我会使用一个值对象.诀窍是正确定义值对象.我看到那些相当于“数据类型”的对象,就像一个整数是一个整数.当然这是可疑的(int16,int32 …).但是我们假设是这样的.员工是否是一个价值对象的良好候选人?….我不这么认为:(…您可能不需要在有限的上下文中为员工提供相同的信息集,另一名称员工的身份信息是更好的候选人(名字,姓氏,中等…)这可以在有限的上下文中重用.
现在服务层应该返回这个值对象吗?… Personnaly我不会这样做.我更喜欢在我的存储库中定义这种可重用性.在Nhibernate中共享映射或共享相同的投影/映射器类.
希望这可以帮助 :)
以上是大佬教程为你收集整理的域驱动设计 – 域驱动设计中跨有界环境的实体全部内容,希望文章能够帮你解决域驱动设计 – 域驱动设计中跨有界环境的实体所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。