![]() ![]() |
Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 0 Dołączył: 8.05.2006 Ostrzeżenie: (0%)
|
Witam, chcialbym zmienic obiekt klasy:)
i teraz problem zaczyna sie tutaj: Tworze obiekt klasy pudelko i pobieram z informacje jakiego typu jest to pudelko i ogolnie chodzi oto zeby przeladowac tworzony obiekt innym obiektem. Czyli aby w podanym przykladzie tworzenie obiektu Pudelko (ktory gdzies tam ma informacje o jego typie) tak naprawde zwrocil (stworzyl) obiekt klasy Kwadratowe. Mozna to jakos zrobic? Ten post edytował Pucy 9.01.2011, 01:38:12 |
|
|
|
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 86 Pomógł: 20 Dołączył: 20.01.2010 Ostrzeżenie: (0%)
|
To czego szukasz, jest znane pod nazwą wzorca projektowego Fabryka. Nie powinieneś przeciążać obiektu, ale zwracać nowy obiekt. Potrzebne ci jest coś w stylu:
|
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 0 Dołączył: 8.05.2006 Ostrzeżenie: (0%)
|
Ale ja wlasnie korzystam z fabryki i zalozeniem jest ze przy tworzeniu (w momencie tworzenia nie mam typu lub nie ja go podaje) wiec $pudelko = FabrykaPudelek::stworzPudelko('kwadratowe');
ale chyba i tak mi cos uswiadomiles wiec sproboje cos innego |
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 86 Pomógł: 20 Dołączył: 20.01.2010 Ostrzeżenie: (0%)
|
A co robisz z tym obiektem zanim poznasz jego konkretną klasę?
|
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 0 Dołączył: 8.05.2006 Ostrzeżenie: (0%)
|
On ogolnie jest tworzony za pomoca klasy ORM:: w kohana 3.
Tutaj przedstawilem ejszcze pewne rozwiazanie do przeladowania klasy factory http://dev.kohanaframework.org/issues/3559 ale to i tak nie jest to czego ja oczekuje. Wymyslilem po prostu tak: Przeladowalem funckje __call i po prostu w przypadku gdy bede staral sie pobrac jakies dane z konkretnego modelu typu testu, to bede je pobeiral za pomoca metod tego modelu. Moze osiagne to czego oczekuje. Ale najlepszym rozwiazaniem vbyloby jednak jakiekowliek przeladowanie obiektu $this w zaleznosci od pewnego parametru. Eh. |
|
|
|
![]() ![]() |
|
Aktualny czas: 20.12.2025 - 21:56 |