![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 65 Pomógł: 5 Dołączył: 10.09.2010 Ostrzeżenie: (0%) ![]() ![]() |
Czesc, jakis czas temu przeczytałem, że jedyna opcja dla wielodziedziczenia jest Implementowanie interfejsu...
Poczytałem, ok stworzyłem niby interfejs, ale nie mam pojecia jak to wszystko działa. Wydaje mi sie ze to działa w ten sposob interfejs { funkcja() } clasa dajaca do interfejsu { funkcja() {} } i pozniej mozna pobrac z interfejsu ta funkcje. Wydawało mi sie, że dobrze zrozumiałem to ale niestety nie moge stworzyc zadnego kodu, byc moze zle pojąłem sposob działania interfejsu. Bylbym wdzieczny gdyby ktos zrobil jakis prosty przyklad, samo echo i zmienne, jak zrobic oraz wykorzystac interfejs. Duzy czytalem, napisanie tutaj to ostatecznosc. Dziekuje za cierpliwosc i przepraszam za prostote pytania Pozdrawiam |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Cytat @Crozin: Dales bardzo ladny przyklad swojej nieznajomosci wzorcow projektowych (IMG:style_emoticons/default/smile.gif) Problem w tym, że dekorator zakłada rozwijanie istniejącego obiektu, a nie dodawanie do niego kompletnie nowej, z niczym nie związanej funkcjonalności. Już o jednoczesnej obsłudze wielu różnorakich obiektów nie wspominając. Znajomość wzorców to nie tylko wyuczenie się jakie konstrukcje wyglądają jak jakiś tam wzorzec.to co pokazalem wyzej to nic innego jak Dekorator, a stosowane w dokladnie tej formie co wyzej jest np: w Doctrine - behaviours, i jest naprawde bardzo przydatne (IMG:style_emoticons/default/smile.gif) Cytat problem z wielodziedziczeniem wynikal stad ze bylo naduzywane w C++, wymagalo rzutowania, i rodzilo wiele problemow np: http://en.wikipedia.org/wiki/Diamond_problem Nawet nie to. Problemem jest to, że wielokrotne dziedziczenie jest z reguły kompletnie zbędne, ale co ważniejsze to narzędzie pozwala na zbyt wiele nadużyć. Pierwszy lepszy przykład, wikipedia:Kod Human Ktoś uznał, że muzyk (zawód, profesja) to wyspecjalizowana forma człowieka (zwierzęcia).
Worker : Human Musician : Human, Worker StreetMusician : Human, Musician, Worker |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 125 Pomógł: 7 Dołączył: 27.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
Problem w tym, że dekorator zakłada rozwijanie istniejącego obiektu, a nie dodawanie do niego kompletnie nowej, z niczym nie związanej funkcjonalności. Już o jednoczesnej obsłudze wielu różnorakich obiektów nie wspominając. Znajomość wzorców to nie tylko wyuczenie się jakie konstrukcje wyglądają jak jakiś tam wzorzec. ale to co napisalem wyzej to dokladnie rozwijanie istniejacego obiektu, najpierw tworze instancje pozniej dodaje do niej dekoratory |
|
|
![]() ![]() |
![]() |
Aktualny czas: 6.10.2025 - 17:54 |