让我们回顾一些实体:


公司;
合作者;
首席;
下属工人。


有一些规则:


合作者可以是以下之一:销售,经理,
雇员;
销售和经理可以有下属工人(第一条规则中规定的任何类型);
销售,经理,员工可以有负责人;
每个角色都有自己的薪水
计算方法。


因此,目标是创建灵活且可重用的类层次结构。



使我困惑的第一件事是“可以拥有”这个短语。应该将其实现为组合吗?如果说“可以有很多”,它应该是包含对象列表的组合吗?

我应该创建抽象类Collaborator,然后从中继承其他3种类型,还是有更聪明的方法?

将所有实体捆绑在一起并具有良好的可重用组装性的最佳方法是什么?

最佳答案

"Can have"及其后跟"workers"的事实告诉我,这是一个0到许多关系的"has a"关系(组成)(所以您提到的列表可能为空)

抽象类协作者似乎很合理。

关于c# - 建立灵活且可重用的类层次结构,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4944776/

10-11 01:52