我试图弄清楚我如何处理 DDD 和有界上下文的使用。
我试图举一个例子来说明我的问题。(我正在使用贫血课程来提高速度)。
我正在尝试绘制出如何在不同的有界上下文中分离域对象。
我想到了可能是 Employee 的域对象。
假设我有两个有界上下文,人力资源部和财务部。
一般来说,财务部门比人力资源部门需要更多关于员工的信息。人力资源部门不需要任何与员工银行详细信息、国民保险号码或合同工时相关的信息。(也许在某些企业中这并不完全正确,但让我们在示例中假设这一点)。
因此,在两个不同的上下文中,与 Employee 所需的行为/交互是不同的。
人事部。
public class Employee
{
public int Id { get; set; }
public Title Title { get; set; }
public string Forename { get; set; }
public string Surname { get; set; }
public Address Address { get; set; }
public DateTime DateOfBrith { get; set; }
public DateTime EmploymentStartDate { get; set; }
}
财务部门。
public class Employee
{
public int Id { get; set; }
public Title Title { get; set; }
public string Forename { get; set; }
public string Surname { get; set; }
public Address Address { get; set; }
public DateTime DateOfBrith { get; set; }
public string NationalInsuranceNumber { get; set; }
public BankAccount BankAccountDetails { get; set; }
public double ContractedHours { get; set; }
}
鉴于此示例,我如何限制 HR 上下文中的 Employee 对象,使其仅具有所需的行为,并且财务上下文具有扩展行为。
如果应用程序被分解为多个上下文,所有上下文都具有与 Employee 关联的自定义行为,我将如何为 Employee 对象建模。
我已经研究了构建上下文映射的不同方法,共享内核似乎很有希望,但这意味着所有上下文将共享与 Employee Domain 对象关联的所有行为。
我希望每个上下文都是有限的。
帮助!