为了便于说明,我有一个复杂的对象层次结构,我们可以表示,如下所示:
class Base {
public handle() {
//base handling code
onHandlingDone()
}
public onHandlingDone() {
//base onHandlingDone code
}
}
//--------------------------------------
class Regular extends Base {
public handle() {
super.handle();
//regular handling code
}
public onHandlingDone() {
//regular onHandlingDone code
super.onHandlingDone()
}
//--------------------------------------
}
class Special extends Regular {
public handle() {
super.handle();
//special handling code
}
public onHandlingDone() {
//special onHandlingDone code
super.onHandlingDone()
}
}
注意:这不是我的设计,我正在对一个大型项目进行维护。有很多“特殊”的实现。重构不是一种选择。
有很多交错的代码:方法是调用超类方法,也是超类方法,一些调用是对其他方法的调用是在每个级别完成的。
现在我想画一些序列图来帮助我理解发生了什么。
我应该如何在层次结构中表示这些调用?
- 展开层次结构会在图表中添加大量噪音,但会是准确的。
- 屏蔽层次结构将导致更简单的图表,但它令人困惑(那个该死的方法又在哪里,当我发送此消息时我在层次结构中的哪个位置?)
有什么常用的方法来处理序列图中这种复杂的类层次结构吗?