У меня есть сложная иерархия объектов, которые мы можем представить, для иллюстрации,
вот так:
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()
}
}
Примечание: это не мой дизайн, я занимаюсь обслуживанием огромного проекта. Существует множество «специальных» реализаций. Рефакторинг не вариант.
Существует много чередующегося кода: методы вызывают методы суперкласса, которые также являются методами суперкласса, и некоторые вызовы других методов выполняются на каждом уровне.
Теперь я хочу нарисовать диаграмму последовательности, которая поможет мне понять, что происходит.
Как мне представлять эти вызовы по всей иерархии?
- Развертывание иерархии добавит много шума на диаграмме, но будет точным.
- Маскировка иерархии приведет к более простой диаграмме, но это сбивает с толку (где снова этот чертов метод, где я в иерархии, когда отправляю это сообщение?)
Есть ли какой-нибудь обычный способ справиться с такого рода сложной иерархией классов в диграмме последовательности?