![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 9.09.2011 Ostrzeżenie: (0%) ![]() ![]() |
Jako, że jest to mój pierwszy post, to witam wszystkich serdecznie.
Mam do was kochani pytanie. Otóż w pewnym celu, potrzebuje możliwości dziedziczenia po różnych klasach w zależności od sytuacji. Próbowałem już czarować ze zmiennymi, stałymi, etc., interpreter nie daje niestety za wygraną. W skrócie, chodzi mi o rozwiązanie takiej (błędnej z punktu widzenia interpretera) sytuacji:
Odpowiada mi zarówno rozwiązanie ze zmienną, jak i stałą, nie ma to dla mnie znaczenia. Po prostu na podstawie wpisu w configu chciałbym dziedziczyć po różnych klasach. Dzięki serdeczne i pozdrawiam. Ten post edytował sparr0w 10.09.2011, 05:14:57 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 1 566 Pomógł: 37 Dołączył: 14.05.2003 Skąd: Kraków ![]() |
Witamy !
Nie da się tak jak chcesz zrobić. Jedyne co możesz zrobić to:
i w zależności od tego co tam potrzebujesz:
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 9.09.2011 Ostrzeżenie: (0%) ![]() ![]() |
Ale czy wtedy Child odziedziczy zmienne i metody z Parent? Chyba nie... A o to mi właśnie chodzi.
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Napisz co chcesz osiągnąć / jaki problem rozwiązać / czemu to ma służyć. Nakierujemy Cię na prawidłowe rozwiązanie, bo to co teraz próbujesz zrobić - pomijając fakt, że jest niemożliwe - jest pod każdym względem złe.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 9.09.2011 Ostrzeżenie: (0%) ![]() ![]() |
OK! Zatem jest tak.
Mam stworzoną klasę do obsługi MySQL'a
ale powiedzmy, że mam jeszcze klasy do obsługi innych baz danych, np:
etc. Teraz, mocą mi daną ![]()
Nie chcę tego robić też tak:
Zamiast tego, chcę się odwołać do klasy, która dynamicznie, na podstawie configa odpali klasę włąściwą dla odpowiedniej bazy danych, robiąc tak:
Wymyśliłem to tak, że Application_DB_Default będzie pustą, lub prawie pustą klasą, która będzie dziedziczyć absolutnie wszystko po klasie dla odpowiedniej, ustalonej na podstawie CFG_DB_TYPE bazy danych. |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Interface + Wzorzec Fabryka (Factory)
-------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 9.09.2011 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 18.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 2 958 Pomógł: 574 Dołączył: 23.09.2008 Skąd: wiesz, że tu jestem? Ostrzeżenie: (0%) ![]() ![]() |
W ten sposób to ja z krowy mogę zrobić wieloryba... tylko jaki w tym sens (pomijając wrzucanie całego kodu klasy tt do eval)
![]() |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 18.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
udowodnij
![]() |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Dałem już autorowi słuszne rozwiązanie, nie wiem po co dalej drążycie temat, w dodatku z evalem? lol2
-------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 53 Pomógł: 1 Dołączył: 20.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Słusznym rozwiązaniem byłoby też PDO.
A nawiązują do tematu. Ogólnie rzecz biorąc, to co chciałeś z początku osiągnąć dziedziczeniem, powinno się zrobić przy pomocy agregacji:
lub, jak pisał Fifi209, za pomocą wzorców konstrukcyjnych. Ten post edytował Kedan 30.09.2011, 10:05:53 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 13.06.2025 - 04:18 |