Selbst die Kettenglieder müssen nur ihren direkten Nachfolger und nicht den Gesamt-Aufbau der Kette kennen. Dies führt zu einer geringeren Kopplung. Es muss sichergestellt werden, dass jeder Bearbeiter in der Kette nur einmal vorkommt, sonst entstehen Kreise und das Programm bleibt in einer Endlosschleife hängen. Dass jeder Bearbeiter (üblicherweise) nur einmal in der Kette vorkommen soll, ist verständlich. Aber warum sollen Kreise entstehen, falls ein Bearbeiter zwei Mal in der Kette vorkommt? Es hängt davon ab, wie die Kette Implementiert ist. Wenn man die Verkettung vernünftig einsetzt, nimmt man mit großer Wahrscheinlichkeit eine fertige Klasse (etwa wie List). Dann kann die Kette ruhig aus zehn Glieder bestehen und jeder Glied denselben Bearbeiter beinhaltet - es entstehen keine Kreise. Die Idee, den Kettenaufbau durch die Eigenschaften der Bearbeiter-Klasse zu implementieren, passt irgendwie nicht in die Beschreibung von GoF Muster (wir sprechen doch über die ObjektOrientierte Welt) und ist auf keinen Fall Bestand dieses Musters, obwohl das buchstäbliche Lesen des UML Diagramms zu solchem naiven Gedanken führen könnte. Dazu auch gehört die Passage, dass Selbst die Kettenglieder müssen nur ihren direkten Nachfolger und nicht den Gesamt-Aufbau der Kette kennen. Dies führt zu einer geringeren Kopplung. Was hat Implementierung einer Kette mit diesem Muster zu tun? Es ist irritierend und kann als die Idee empfunden werden, das Link auf den nächsten Kettenglied in die Klasse Bearbeiter einzubauen (ja, ich kenne das Code-Beispiel von GoF zu diesem Muster. Bitte berücksichtigen, im welchen Jahr die dieses Beispiel erarbeitet haben). Dies würde eben zu einer stärkeren Kopplung führen. Und falls diese Idee nicht gemeint wurde, von welcher Kopplung ist in diesem Kontext die Rede? Falls man doch die Klasse Bearbeiter mit Aufgaben überlastet und das Link auf den nächsten Bearbeiter buchstäblich in die Klasse einbaut (hallo SRP), bin mal gespannt, wie man einen Kreis in der Kette im Code implementiert...