如何在UML类图中表示两个类之间的可互换关系

时间:2015-01-01 14:08:19

标签: java uml diagram

假设F16Weapon和F18 HornetWeapon是两个武器级别。他们每个级别都有三种武器,如connon,炸弹,导弹。

我厌倦了在F16Weapon和F18 HornetWeapon之间画出可互换的关系。我的意思是F16级可以使用F18武器套装或F18级使用F16武器套装。基本上如果F16级尝试使用F18加农炮武器,F16将很容易从F18武器套装中使用它。 F18级也是如此。所以F16级和F18级之间会有可互换的关系。如何在UML类图中表示两个类之间的这种可互换关系?任何人都可以帮助我。

提前致谢。

1 个答案:

答案 0 :(得分:2)

xmojmr是对的,你应该使用泛化。他的回答背后的一点是,泛化是一种从一组类中拉出行为的方式,并将它们组成一个他们都使用的类。这就是你在这里描述的内容。

现在,如果加农炮在使用F16和F18时使用相同的软件,那么您可能希望将该软件保存在一个地方,让他们两个都使用它。相反,如果您希望他们使用不同的软件,然后使用部署大炮的第三块软件而不必知道它是否使用F16或F18,那么您将使用接口。一个接口说如果你想成为CannonDeployer(或其他),那么你必须使用Deploy方法(或其他),但你可以用你想要的任何方式编写它。

因此,正如他所说,界面更灵活,但您必须决定是否需要为每个平面提供不同的软件实现。如果你不这样做,那么把实现放在基类中(xmojmr&#39的例子中的FXCompatibleWeapon)并保留它。