C#-设计帮助-对象修改并保存另一个对象
作者:互联网
我在思考设计问题时遇到了一些麻烦,并认为社区可能能够帮助我指出正确的方向.我正在为公司的员工管理系统建模,并遇到了一个困扰我的设计问题.
这是场景:
我有一个Employee类,该雇员类具有Office对象列表(该雇员在哪里工作以及已经在哪里工作).我需要创建在办公室之间转移员工的能力.转移请求有一些额外的开销(审批,复审),但最终,我的转移对象的批准应导致更改“员工对象办公室列表”.
我正在为对象使用C#,EF4和POCO.我不确定如何为传输对象建模.它将保留一段时间,并且可能几天无法完成(批准必须先完成,然后才能继续).转移对象需要知道要修改的员工以及该员工的新办公室.我觉得让Employee成为Transfer对象的子代并在那里修改它是一种糟糕的设计.我只是想知道是否有人对如何建模此需求有任何建议.
解决方法:
您可以将转移视为完全独立的对象-EmployeeTransfer.
至少,它将包含以下数据:
1.员工的唯一标识符.
2.从办公室转移的唯一标识符.
3.转移到办公室的唯一标识符.
4.传输进度的状态指示器.
这是一个轻型对象,不包含任何其他对象-它通过唯一标识符引用它们.处理转帐后,请验证“员工”和“转至”办公室仍然有效,然后更新“员工办公室”集合.
此解决方案的唯一先决条件是,在创建转账之前,员工和办公室必须存在.
标签:domain-driven-design,c 来源: https://codeday.me/bug/20191209/2097806.html