Единственное различие, которое я вижу между этими двумя объяснениями, состоит в том, где указатель на следующий обработчик (базовый класс обработчика или конкретная реализация) должен быть представлен в базовом классе, поскольку он будет наследоваться в каждом экземпляре.
Так что, с моей точки зрения, представление Винчестона более точное.
Если вы посмотрите на фактическую реализацию в dotfactory, вы увидите, что, несмотря на представление UML, оно все равно помещает преемника в базовый класс.1005 *
Редактировать: Реализация отличается способом вызова преемника, предоставляя преемнику экземпляр и базовый метод для вызова преемника.В обоих случаях метод или член наследуются от базового класса, поэтому агрегация неправильная, вы не определяете агрегацию при использовании унаследованных членов или методов.