Zpo-5-wyk-Slajd37
Z Studia Informatyczne
Message Chains
Omówione wcześniej prawo Demeter stanowi regułę opisującą prawidłowy sposób wiązania ze sobą niespokrewnionych obiektów. Omawiany przykry zapach stanowi naruszenie prawa Demeter: metoda w jednym z obiektów dokonuje swoistej podróży przez cały system, wywołując metody w celu znalezienia kolejnych obiektów. Takie rozwiązanie powoduje, że metoda ta jest zależna od całej reszty systemu.
Rozwiązaniem tego problemu może być stworzenie dodatkowych metod ukrywających delegacje w kolejnych obiektach. Zwiększy to liczbę metod, ale zmniejszy liczbę powiązań pomiędzy obiektami. Można również próbować przesuwać metody między obiektami znajdującymi się wewnątrz łańcucha.