Factory Method
Z PHPEdia.pl
Spis treści |
Charakterystyka
Wzorzec Metoda wytwórcza zapewnia standardowy sposób tworzenia przez klasy obiektów innych klas. Typowym jego zastosowaniem jest zwracanie przez funkcję obiektów różnych klas w zależności od wartości parametrów wejściowych.
Założenia
Metoda wytwórcza pozwala na:
- ujednolicenie interfejsu dla grupy obiektów o tej samej odpowiedzialności,
- niezależność od konkretnej implementacji, co pozwala na dynamiczną wymianę używanego obiektu
- hermetyzacje oraz sparametryzowanie procesu tworzenia obiektu
Kiedy używać
Przykładowe implementacje
Przykład z życia wzięty. Jedna treść kilka wyjść. Html, XML, WML, PDF każdy z tych formatów charakteryzuje się innymi cechami. W tym przypadku sprawdza się wzorzec Factory Method.
<?php /* Fabryka */ interface IRenderer { public function render(); } class HtmlRenderer implements IRenderer { /* ... */ public function render(){ //generujemy html } /* ... */ } class PdfRenderer implements IRenderer { /* ... */ public function render(){ //generujemy pdf } /* ... */ } class NewsRendererFactory { public function setTitle($title){ //... } public function setText($title){ //... } public static function getRender(){ switch(strtolower($_GET['output'])){ case 'html': $renderer = new HtmlRenderer(); break; case 'pdf': $renderer = new PdfRenderer(); break; } } } $newsRender = NewsRendererFactory::getRender(); //ustawiemy tytul, tersc itp. $newsRender -> setTitle('PHP 6 wydane!'); $newsRender -> setText('długo oczekiwana 6 wersja PHP została wydana!'); $newsRender -> render(); ?>
Na samym początku deklarujemy interfejs IRenderer z metodą publiczną render() która będzie generowała wyjście. Następnie przykładowe 2 klasy HtmlRenderer oraz PdfRenderer implementujące interfejs IRenderer. Na końcu znajduje się klasa News w której statycznej metodzie aplikacja wybiera w jakim obiekt wyjścia zwrócić.
Polecamy również
- Wzorce projektowe
- Wzorzec Factory Method w podręczniku PHP
- artykuł o Factory Method @ phppatterns.com
Strona ta opisuje jeden z Wzorców projektowych.
Wzorce projektowe: Definicja | Zalety | Podział wzorców | Lista wzorców
