![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 1 Dołączył: 20.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Mam zależność tego typu:
ale do tego mam zależność:
Od jakiegoś czasu główkuję jak to rozwiązać, ale nic sensownego nie przychodzi mi do głowy. Ten post edytował Kedan 11.05.2009, 11:29:35 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%) ![]() ![]() |
Żeby próbować odpalać interfejsy na PHP4 i złościć się, że nie działają, to trzeba być naprawdę zdolnym... jak Ci niby mają zadziałać, jak PHP4 ich nie obsługuje? Inerfejsy od wielu lat świetnie się mają chociażby w Javie, skąd zostały żywcem zerżnięte do PHP. Wykorzystuje je wiele projektów i jakoś nikt nie narzeka.
Wielokrotne dziedziczenie jest dość niebezpieczne z kilku powodów. Po pierwsze, nie oddziela implementacji od publicznego interfejsu - da się przez to stworzyć hierarchię klas, gdzie zmiana implementacji może wymuszać zmianę interfejsu lub zmuszać do nieprawidłowego użycia obiektów. Innymi słowy, trzeba znać bardzo dobrze wewnętrzne mechanizmy języka i przestrzegać ściśle dyscypliny. Kolejny mój zarzut przeciwko wielokrotnemu dziedziczeniu to sprawianie złudnego wrażenia, że jest ono potrzebne, podczas gdy sytuacje takie są baaaaaaaardzo rzadkie i w większości wynikają po prostu z popełnionych błędów projektowych. Nie bez powodu w Javie nie zdecydowano się na wprowadzenie czegoś takiego. Kedan -> Twój problem może być bez trudu rozwiązany np. przez użycie kompozycji, albo przemyślenie, czy naprawdę musi to być w ten sposób właśnie robione... dokładną decyzję musisz podjąć sam, ponieważ to jest Twój kod i powinieneś najlepiej wiedzieć, co on ma odzwierciedlać. Przemyśl to, co napisałem. Tysiące, jeśli nie dziesiątki tysięcy projektów doskonale sobie bez wielokrotnego dziedziczenia radzą i mają się świetnie. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 11.10.2025 - 09:06 |