具有聚合和泛化的类图

时间:2010-02-08 21:48:12

标签: class diagram design-decisions

我正在从事一个大学项目,我有以下问题,我无法弄清楚。

我有一个名为Employee的课程 从这里我概括了两个类承包商员工和永久员工。

现在我有一个由两种类型的员工组成的团队,所以我打算使用聚合。

我是否必须将团队类连接到两个子类或员工类?

谢谢

4 个答案:

答案 0 :(得分:5)

到员工班。团队课程将有一份员工名单;他们不会关心他们实际上是ContractorEmployees,PermanentEmployees或FooEmployees。

答案 1 :(得分:2)

这个有趣的问题......如果你的Team类只引用了Employee,你将来可以扩展到其他类型的Employees(TeamLeads,Managers等......)。如果你将Team类绑定到Contractor和PermanentEmployee,你实际上是在说团队可以拥有Contractors,Perm.Employees和没有别的东西!但也许这就是你想要的......

答案 2 :(得分:0)

看看这里:Composition Associations

  

在UML 2中,聚合​​将以空心菱形显示。

答案 3 :(得分:0)

不要在Team和Employees或其子类型之间使用聚合。 Team类有一个属性'Members',它是Employees的集合。通过这种方式,团队可以拥有Employee子类型的任意组合,包括稍后添加的任何其他子类型。