![]() |
![]() |
-ddddf- |
![]()
Post
#1
|
Goście ![]() |
Czy to jest poprawna kompozycja i czy kompozycje polegają a tym, aby klasa X która ma jakieś ważne dane dla klasy Foo nie mogłaby mieć własnej instancji? Czyli jeśli mam klasę Login która ma pobierać dane z klasy User, która sprawdza użytkownika, to klasa User ma w konstruktorze mieć klasę Login? Nie bardzo ogarniam samo określenie kompozycji i to gdzie i w jakich przypadkach je stosować, a nigdzie nie znalazłem konkretnego wyjaśnienia, w języku PL w ogóle ich nie ma. Są tylko przykłady, jak powyższy ale nic poza tym. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 46 Pomógł: 10 Dołączył: 30.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Kompozycja jest szczególnym przypadkiem agregacji.
Tutaj jest to dość dobrze wyjaśnione: Agregacja (programowanie obiektowe) W PHP-ie nie masz możliwości zrealizować kompozycji bo nie ma zagnieżdzania klas. Odnośnie twojego kodu: - jest to agregacja (obiekty klasy Foo przechowują obiekt klasy X) - nie jest to kompozycja (bo obiekt klasy X i Foo mogą istnieć niezależnie) |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 01:04 |