我正在尝试弄清楚如何处理DDD和有界上下文的使用。
我尝试举一个例子来说明我的问题。(为了快速,我使用了贫血类)。
我试图规划如何将不同的有界上下文中的领域对象分离出来。
我考虑了一个可能是Employee的领域对象。
假设我有两个有界上下文,人力资源部门和财务部门。
通常情况下,财务部门需要比人力资源部门更多与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 对象限制为仅具有所需行为,并使 Finance 上下文具有扩展行为。
如果应用程序分为多个上下文,每个上下文都与 Employee 相关联具有自定义行为,那么我该如何对 Employee 对象进行建模。
我已经尝试了不同的方法来构建您的上下文映射,共享内核似乎很有前途,但这意味着所有上下文都会共享与 Employee 领域对象相关联的所有行为。
我希望每个上下文都有所限制。
帮帮我!