Как изобразить вызов суперкласса в диаграмме последовательности? - PullRequest
1 голос
/ 17 января 2012

У меня есть сложная иерархия объектов, которые мы можем представить, для иллюстрации, вот так:

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

Примечание: это не мой дизайн, я занимаюсь обслуживанием огромного проекта. Существует множество «специальных» реализаций. Рефакторинг не вариант.

Существует много чередующегося кода: методы вызывают методы суперкласса, которые также являются методами суперкласса, и некоторые вызовы других методов выполняются на каждом уровне.

Теперь я хочу нарисовать диаграмму последовательности, которая поможет мне понять, что происходит.

Как мне представлять эти вызовы по всей иерархии?
- Развертывание иерархии добавит много шума на диаграмме, но будет точным.
- Маскировка иерархии приведет к более простой диаграмме, но это сбивает с толку (где снова этот чертов метод, где я в иерархии, когда отправляю это сообщение?)

Есть ли какой-нибудь обычный способ справиться с такого рода сложной иерархией классов в диграмме последовательности?

1 Ответ

1 голос
/ 27 января 2012

Строго вам нужно развернуться и иметь плавательные дорожки для Super-> Regular-> Base.Однако одним из способов минимизации шума было бы создание стереотипа super и использование собственных вызовов.

...