域驱动设计 – 域驱动设计中跨有界环境的实体

域驱动设计 – 域驱动设计中跨有界环境的实体,第1张

概述我正在努力了解实体如何在多个有界的环境中运行. 给予公司员工在(例如)人力资源背景下,该人有姓,姓,地址,工资参考号和银行帐号.但在会计背景下,所有相关的是薪资参考号和银行账户. 您在会计上下文中是否在HR环境中有Employee实体和Value-Type(例如SalariedEmployee)? class Employee{ public BankAccount BankAcount 我正在努力了解实体如何在多个有界的环境中运行.

给予公司员工在(例如)人力资源背景下,该人有姓,姓,地址,工资参考号和银行帐号.但在会计背景下,所有相关的是薪资参考号和银行账户.

您在会计上下文中是否在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; }}

有界背景下的HRService是否返回此信息?还是在两个上下文中使用Employee类?

解决方法 我想我不会在两个上下文中使用相同的实体.他们应该是有限的.如果我必须根据一个上下文的需要改变我的员工阶级呢?“应该是有限的上下文”不再是有限的了.

我会使用一个值对象.诀窍是正确定义值对象.我看到那些相当于“数据类型”的对象,就像一个整数是一个整数.当然这是可疑的(int16,int32 …).但是我们假设是这样的.员工是否是一个价值对象的良好候选人?….我不这么认为:(…您可能不需要在有限的上下文中为员工提供相同的信息集,另一名称员工的身份信息是更好的候选人(名字,姓氏,中等…)这可以在有限的上下文中重用.

现在服务层应该返回这个值对象吗?… Personnaly我不会这样做.我更喜欢在我的存储库中定义这种可重用性.在Nhibernate中共享映射或共享相同的投影/映射器类.

希望这可以帮助 :)

总结

以上是内存溢出为你收集整理的域驱动设计 – 域驱动设计中跨有界环境的实体全部内容,希望文章能够帮你解决域驱动设计 – 域驱动设计中跨有界环境的实体所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1142045.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存