【发布时间】:2011-02-09 12:23:13
【问题描述】:
让我们回顾一些实体:
- 公司;
- 合作者;
- 首席;
- 下属工人。
有一些规则:
- 合作者可以是以下之一:销售、经理、 员工;
- 销售和经理可以有下属工人(第一条规则中描述的任何类型);
- 销售、经理、员工可以有主管;
- 每个角色都有自己的薪水 计算方法。
因此目标是创建灵活且可重用的类层次结构。
首先让我感到困惑的是“可以拥有”这个词。它应该作为一个组合来实现吗?如果说“可以有多少”,它应该是一个包含对象列表的组合吗?
我应该创建抽象类 Collaborator 然后从它继承其他 3 种类型还是有更聪明的方法?
将所有实体联系在一起并具有良好的可重用组件的最佳方法是什么?
【问题讨论】:
-
工资计算规则是什么?每个职位都有不同的职位,还是有些职位共享薪水计算?
-
我还要求澄清
Subordinate workers和Employees以更好地了解这种关系。 -
@Steven Jeuris 每个角色都有自己的薪水计算,但 Collaborator 类保持共享 baseSalary。
标签: c# oop design-patterns