Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Czy to jeszcze jest Fabryka?, Oceńcie proszę czy wyszedłem już poza koncepcję Fabryki (Factory)
djgrin
post
Post #1





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 13.05.2007

Ostrzeżenie: (0%)
-----


Cześć wszystkim,
krótko mówiąc - miałem kod oparty o wzorzec fabryki i po licznych zmianach ewoluował on do czegoś takiego:
  1. class TheFactory {
  2. // ...
  3.  
  4. public function theFactoryMethod($what) {
  5. switch($what) {
  6. case 'one': return new ClassA();
  7. break;
  8. case 'two': return new ClassB();
  9. break;
  10. case 'three': return new ClassC();
  11. break;
  12.  
  13. // ...
  14. }
  15. }
  16.  
  17. // ...
  18. }
  19.  
  20. class TheClass extends TheFactory {
  21. // ...
  22. }
  23.  
  24. $obj = new TheClass();
  25. $newObj = $obj->theFactoryMethod('one');


Chodzi o to, że metoda produkująca obiekty przestała być statyczna, a ja wywołuję ją z obiektu. Klasy ClassA, B i C implementują oczywiście wspólny interfejs, pominąłem tutaj wiele szczegółów, żeby nie zaciemniać, ale mam nadzieję, że wiecie, o co chodzi...
I moje pytanie: czy to jeszcze opiera się o koncepcję Fabryki, czy już nie? Jak sądzicie?

Być może pytanie jest czysto teoretyczne (bo kod oczywiście działa), ale może pokażecie mi błędy, których ja już nie zauważam (IMG:style_emoticons/default/winksmiley.jpg) ...
Tak czy siak - liczę na opinie i dyskusję.

Pozdro
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
-=Peter=-
post
Post #2





Grupa: Zarejestrowani
Postów: 304
Pomógł: 51
Dołączył: 4.02.2005
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Powiem tyle, że strzeliłeś sobie w kolano (IMG:style_emoticons/default/winksmiley.jpg) Przeczytaj głębiej np. wpis w pierwszym wyniku w google w linku który podałeś...

Być może było to kiedyś prawdą, być może odnosi się to do wywołania metody niestatycznej (obiektowej) w sposób statyczny - wtedy faktycznie widać różnicę że wywołanie statyczne metody obiektowej jest wolniejsze od wywołania na obiekcie i wtedy taką metodę należy zamienić na statyczną - wzrost wydajności o ok 1/4.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 4.10.2025 - 05:54