![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 69 Pomógł: 0 Dołączył: 26.01.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam taki oto problem. Mam klase główną, której konstruktor tworzy obiekty 3 innych klas czyli coś takiego:
I teraz pytanie, jak osiągnąć taki efekt, żeby pola obiektów stworzonych w klasie (Klasa_1 , 2 i 3 dziedziczą po klasie głównej). Były dostępne dla wszystkich pozostałych obiektów ? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Mógłbyś pokazać jakiś przykład użycia, tego co chcesz osiągnąć? Ewentualnie opisać sytuację?
|
|
|
![]()
Post
#3
|
|
Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław ![]() |
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 589 Pomógł: 91 Dołączył: 22.05.2008 Skąd: Gliwice Ostrzeżenie: (0%) ![]() ![]() |
Może o coś takiego Ci chodzi?
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 69 Pomógł: 0 Dołączył: 26.01.2006 Ostrzeżenie: (0%) ![]() ![]() |
Co chciałem uzyskać, chciałem w miare wygodny sposób w klasa_1, 2 i 3 mieć dostęp do wybranych pól i metod dowolnej z tych klas.
Najbliżej tego rozwiązania był #luq ale pozostają 2 pytania: - jaka jest wydajność pod kątem prędkości i zajętości pamięci takiego rozwiązania. - jeśli takich klas będzie kilkadziesiąt będzie to spory problem (na razie czysto teoretycznie ale zawsze jest to problem) W frameworku Kohana widziałem coś podobnego, np helpery i klasa rejestru jest bardzo ładnie dostępna za pomocą metod i pól statycznych ale nie do końca udaje mi się taką funkcjonaność odtworzyć. Zastanawiam sie nad podobnym mechanizmem ale dla standardowych (nie statycznych) metod. Co jeśli do pola statycznego klasy głównej przypiszę jakiś konkretny obiekt ? W jaki sposób odwołać się do takiej konstrukcji ? EDIT: #luq, chyba to dokładnie to o co mi chodziło , dzieki. W każdym razie jeśli ktoś ma inne propozycje to w celach edukacyjnych chętnie przeczytam. Ten post edytował nu_moon 26.09.2010, 19:11:35 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 0 Dołączył: 9.09.2010 Ostrzeżenie: (0%) ![]() ![]() |
Problemów takie rozwiązanie nie stwarza bo w PHP obiekty domyślnie są przekazywane przez referencje. Mówiąc językiem C++, przekazujesz tylko wskaźnik do obiektu.
A problemu przecież nawet z kilkudziesięcioma klasami być nie powinno. Chyba że masz zamiar robić to ręcznie. Wtedy możesz się co najwyżej opisać ale osobiście sugerował bym skorzystać z wzorców projektowych. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 130 Pomógł: 11 Dołączył: 7.04.2003 Ostrzeżenie: (10%) ![]() ![]() |
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 27.09.2025 - 07:07 |