【发布时间】:2015-01-06 17:35:12
【问题描述】:
我正在尝试弄清楚我如何处理 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 对象关联的所有行为。
我希望每个上下文都会受到限制。
救命!
【问题讨论】:
标签: domain-driven-design bounded-contexts