Łączenie kilku klas lub routing metod |
Łączenie kilku klas lub routing metod |
10.09.2009, 19:58:33
Post
#1
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 10.06.2005 Ostrzeżenie: (0%) |
Mam kilka klas i zmienną zawierającą instancję jakąś klasy.
Klasy: Klasa1 Klasa2 Klasa3 i zmienna: $klasa = new Klasa(); Problem: Sprawić, żeby $klasa będąca instancją klasy Klasa zawierała wszystkie metody klas Klasa1, Klasa2, Klasa3, a jeżeli ostatnio "dodana" klasa posiada metody o tych samych nazwach, żeby przeciążała. Nie wchodzi w grę dziedziczenie, ponieważ z założenia nie wiem jakie mam klasy "na wejściu" i w jakiej kolejności. Myślałem nad wzorcem Dekorator. Poszedłbym w dobrym kierunku? Jest możliwe zrobienie czegoś takiego? Ewentualnie może routing metod (jest coś takiego?). Wpisuję metodę, a Klasa szuka jej po kolei z klas na swojej liście. Proszę o sugestie |
|
|
10.09.2009, 23:43:13
Post
#2
|
|
Grupa: Zarejestrowani Postów: 853 Pomógł: 25 Dołączył: 27.08.2003 Skąd: Katowice Ostrzeżenie: (0%) |
To o czym mówisz to wielodziedziczenie, czy też inne formy jak mixins, traits etc. PHP, jak na razie (są przymiarki do Traitsów) tego nie wspiera. Można kombinować (np. http://www.symfony-project.org/book/1_0/17...Symfony#Mixins), próbować wykorzystać jakoś __call, ale ani to wydajne ani eleganckie. Poza tym nie będziesz miał dostępu do chronionych i prywatnych metod załączanych klas (obiektów), chyba, że w każdej też specjalną obsługę dołożysz w __call, ale to już się robi niezły potworek.
-------------------- "If debugging is the process of removing bugs, then programming must be the process of putting them in..."
sobstel.org |
|
|
11.09.2009, 06:52:12
Post
#3
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 10.06.2005 Ostrzeżenie: (0%) |
|
|
|
Wersja Lo-Fi | Aktualny czas: 26.04.2024 - 09:49 |