私たちは、説明の目的のために、そのような を表すことができ、オブジェクトの複雑な階層構造を持っている:シーケンス図でスーパークラスへの呼び出しを表す方法は?
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で?