为了便于说明,我有一个复杂的对象层次结构,我们可以代表它们 那样:
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()
}
}
注意:这不是我的设计,我正在对一个庞大的项目进行维护。有很多“特殊”实施。重构不是一种选择。
有很多交错代码:方法是调用超类方法,也是超类方法,有些调用是在每个级别完成其他方法。
现在我想绘制一些序列图,以帮助我了解正在发生的事情。
我应该如何在层次结构中表示这些调用? - 展开层次结构会在图表中添加大量噪音,但会很准确 - 屏蔽层次结构将导致更简单的图表,但它令人困惑(这个该死的方法再次出现在哪里,在我发送此消息的层次结构中?)
有没有通常的方法来处理序列digram中的这种复杂的类层次结构?
答案 0 :(得分:1)
严格来说,您需要展开并为Super-> Regular-> Base提供泳道。然而,最小化噪声的一种方法是制作 super 构造型并使用自我调用。