2011-01-24 2 views
2

Я пытаюсь нарисовать диаграмму UML для диаграммы ответственности цепочки. Я имею в виде Сайтов http://www.vincehuston.org/dp/chain.html иКакая UML-диаграмма верна для схемы цепочки ответственности?

http://www.dofactory.com/Patterns/PatternChain.aspx

В Vincehuston диаграмме, есть сама петля в базовом классе, поскольку базовый класс должен иметь указатель на следующий объект обработчика.

В dofactory диаграмме имеется базовый класс в классе Derived.

Не могли бы вы рассказать мне, какой из них правильный? DoFactory в основном объясняет, основываясь на C#, не имеет значения?

ответ

0

Единственное различие, которое я вижу между двумя объяснениями, - это то, где указатель на следующий обработчик (класс базового обработчика или конкретная реализация), который должен быть представлен в базовом классе, поскольку он будет унаследован в каждом экземпляре.

Итак, с моей точки зрения представление vincehuston более точное.

Если вы посмотрите на фактическую реализацию в dotfactory, вы увидите, что, несмотря на представление UML, он все равно помещает преемника в базовый класс.

Редактировать: Реализация отличается тем, как преемник вызывается путем предоставления и экземпляра преемнику или базовому методу вызова преемника. В обоих случаях метод или член наследуется от базового класса, поэтому агрегация неверна, вы не определяете агрегацию при использовании унаследованных элементов или методов.

Смежные вопросы