无法弄清楚我的域名对象设计有什么问题

时间:2016-06-27 23:42:32

标签: java class oop domain-driven-design domain-object

我有这2个班,有人告诉我,我做错了。

class Employee {
private int employeeID;
private String employeeName;
private Seat employeeSeat;
}

这适用于我的员工类,它与Seat类

有关系
class Seat {
private int seatID;
private String seatCode;
private Employee occupant;
}

我还在座位上添加了一个员工属性,因为当我找回座位时,我想确定谁是座位的当前占用者。与我的员工一样,当我检索它时,我想确定员工当前的座位。现在,他们说因为员工有座位属性,座位有员工属性,所以设计很糟糕。

2 个答案:

答案 0 :(得分:2)

你必须问那个告诉你错误解释他们的意思的人。它可能是也可能不是,但这取决于整个系统架构和在对象之间导航的要求。

他们的意思可能是你应该拥有一个EmployeeSeat对象来保存关系以及与该关系有关的任何细节(开始日期,结束日期,小时等等)。但是你必须担心其他问题,例如强制基数限制(员工可以有多个席位,反之亦然)?

答案 1 :(得分:0)

因为在运行时更新关系的一方指向另一个实体并忘记更新另一方(使模型处于不一致状态)的风险通常被认为比使用一个实体的轻微不便更糟糕 - 方向关联。但这并不总是可能的。