![]() |
![]() |
![]()
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: 53 Pomógł: 1 Dołączył: 20.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
@Spawnm
Metody statyczne nie są złe, ale trochę nieeleganckie. Zazwyczaj stosuję je gdy potrzebuję coś "na szybko" albo gdy dana metoda jest tak podstawowa, że praktycznie każdy obiekt w systemie powinien ją posiadać (choć staram się tego unikać i kiedy mogę stosuję dziedziczenie); @Zyx No właśnie przy pomocy kompozycji rozwiązałem to w ostatnim kodzie jaki podałem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Myk tylko polega na tym, że obiekt sprawdza czy posiada daną metotę i jeśli nie - wywołuje metodę swojej składowej. Niestety możliwe jest to tylko dla metod publicznych, więc wszystkie metody chronione trzeba 'cofnąć' o jedno pokolenie wyżej - do myObj. W przypadku jaki podałem kazda z klas dodaje swoje trzy grosze do funkcjonalności; chodzi o ostateczne stworzenie obiektu posiadającego, w zależności od uprawnień, taki a nie inny zestaw metod, przy czym część z nich jest wszędzie taka sama, część ma być nadpisana a część całkowicie unikalna. Pewnie uda mi się jeszcze coś wyczarować z jakimś wzorcem projektowym, jakaś fabryka czy cuś... Co do interfejsów - częściej mam potrzebę stosowania właśnie wielokrotnego dziedziczenia (takie mi zboczenie po C++ zostało) - jest to IMO o wiele bardziej naturalna 'droga' i OOP dużo traci rezygnując z tego rozwiązania. Wiem że jest mnóstwo projektów radzących sobie bez MI, ale pewnie tylko dlatego że nie ma innego wyjścia (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) (specyfika języka). Ten post edytował Kedan 11.05.2009, 23:54:25 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 10.10.2025 - 16:28 |