2

为了便于说明,我有一个复杂的对象层次结构,我们可以表示,如下所示:

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()
 }
}

注意:这不是我的设计,我正在对一个大型项目进行维护。有很多“特殊”的实现。重构不是一种选择。

有很多交错的代码:方法是调用超类方法,也是超类方法,一些调用是对其他方法的调用是在每个级别完成的。

现在我想画一些序列图来帮助我理解发生了什么。

我应该如何在层次结构中表示这些调用?
- 展开层次结构会在图表中添加大量噪音,但会是准确的。
- 屏蔽层次结构将导致更简单的图表,但它令人困惑(那个该死的方法又在哪里,当我发送此消息时我在层次结构中的哪个位置?)

有什么常用的方法来处理序列图中这种复杂的类层次结构吗?

4

1 回答 1

1

如果展开层次结构并为 Super->Regular->Base 设置泳道,则可以执行此操作。然而,减少噪音的一种方法是制作超级刻板印象而不是使用自我调用。

于 2012-01-27T13:34:25.637 回答