我正在通过设计问题思考一些麻烦,并认为社区可能能够帮助我正确的方向。我正在为我的公司建立员工管理系统,并已经到了一个让我难以置信的设计问题。

这是方案:

我有一个员工课程,员工课程有一个办公室对象列表(员工的工作和工作)。我有要求创造在办公室之间转移员工的能力。转移请求有一些额外的开销(批准,评论),但最后,批准我的传输对象应该导致员工对象办公室列表更改。

我正在使用c#,ef4和poco的对象。我不确定如何模拟传输对象。这将持续一段时间,可能不会完成几天(批准必须在其允许继续之前完成)。转移对象需要了解员工修改和新办事处的员工。我觉得自己的设计是坏的设计,让员工成为转移对象的孩子并在那里修改它。我只是想知道有人是否有关于如何建模如何建模这种要求的建议。

有帮助吗?

解决方案

您可以将传输视为完全单独的对象 - 雇用代表服务器。

作为最小值,它将包含以下数据: 1.员工的唯一标识符。 2.从办公室转移的唯一标识符。 3.转移到办公室的唯一标识符。 4.转移进度的状态指示符。

这是一个不包含任何其他对象的轻量级对象 - 它通过唯一标识符引用它们。处理转移时,验证员工并转移到办公室仍然有效,然后更新员工办公室集合。

该解决方案的唯一先决条件是员工和办事处必须在创建转移之前存在。

其他提示

听起来像传输不是一个对象,它是一个工作流程。看看Windows工作流基金会......这是一个好QuickStart示例。

如果您考虑转移对象的响应,则是管理将员工转移到另一个办公室。我会用传输对象与员工和办公室分开,但是对每个人都分开。传输对象可能具有批准状态值的枚举,并且达到最终状态(已取消或最终批准),传输对象可以执行将员工与新办公室关联的操作,并将其标记为已完成。传输对象具有对其他对象的引用不是不好的设计。在这种情况下,转让和雇员(以及转移和办公)之间的关系是“使用”关系。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top