Źródło: Arkusze CKE
Jaki jest kluczowy zamysł wzorca "Kompozyt" (Composite)?
Warianty odpowiedzi
-
A
Umożliwienie klientom obsługi obiektów oraz ich zbiorów w spójny sposób
-
B
Stworzenie jednej klasy do zarządzania wieloma obiektami tego samego rodzaju
-
C
Danie możliwości dynamicznej zmiany zachowania obiektu
-
D
Określenie interfejsu komunikacji pomiędzy składnikami systemu
Wyjaśnienie
Spójrz na system plików w komputerze. Masz tam pojedyncze pliki oraz foldery, które mogą zawierać pliki lub kolejne foldery. Co ciekawe, na pliku i na folderze możesz wykonać podobne operacje, na przykład przenieść czy usunąć.
To jest właśnie sedno wzorca Kompozyt. Pozwala on na budowanie struktur drzewiastych, w których pojedyncze obiekty oraz całe ich grupy są traktowane przez resztę programu dokładnie tak samo.
Dzięki temu kod wywołujący nie musi sprawdzać, czy ma do czynienia z jednym elementem, czy z całą paczką elementów. Wywołuje tę samą metodę dla każdego z nich.