UML:派生类实例化其他相同基类的派生类

时间:2016-08-26 13:29:02

标签: uml class-diagram

给出以下课程设置:

B: base
D1: derived from B
D2: derived from B
... (many more)
Dn: derived from B

修改

这些类的目的是将来自TCP / IP的数据包解码为各种协议(IP,UDP,TCP,许多其他应用程序协议)。每个协议由另一个类处理,以重建像this

这样的数据包结构

ethernet frame

B是一个带有虚方法decode()的抽象解码器类。

特定于其协议规范的类D#重载decode()

E.g。 DecoderIP拨打DecoderUDP ...

如何在类图中描述每个派生类D#是否可以实例化其他派生类D#(关联)而不会使边缘重载图?

目前我的图表看起来像this以适合A4纸。

uml class diagram

1 个答案:

答案 0 :(得分:0)

除非您有具体案例需要,否则您不会描述n D级。相反,您有使用解码器的具体应用程序。即这些是IP,UDP等。因此,您可以编写类模型:

enter image description here

图片中的解码器不是从一个基类派生的,而是相互叠加的堆栈。我怀疑他们都会使用相同的decode方法。所以这可能是你思考中的逻辑错误。 decode方法应该做什么?解码“某事”并提供“什么?”。