Fabrica de model php, esența
@pavel_salauyou nu sunt de acord, l-am descris în exemplul din fabrică. Plățile Managerii sunt exact același tip de obiecte. Doar în sensul, în acest exemplu ar putea fi aplicate Stategriya model, dar s-ar fi privit deja ca acest lucru:
Clasa de comandă protejat manager de $;
funcția publică __construct (PaymentManager $ manager)
$ This-> Manager = $ administrator;
>
funcția publică processPayment ($ date) $ this-> Manager-> proces ($ date);
>
>
PaymentManager clasă abstractă
proces funcția publică abstractă ($ date);
>
class FirstManager extinde PaymentManager
//.
>
class SecondManager extinde PaymentManager
//.
>
//.
în cazul în care ($ totală <10000) $manager = new SecondManager();
>
altfel $ manager de = new FirstManager ();
>
$ = Comandă nouă comandă ($ manager);
$ Ordinii de> processPayment (date $);
Aceasta este pur Strategia - substituim logica prin înlocuirea clasei. Și esența plantei - doar pentru a da un obiect (sau, uneori, clasa) de un anumit tip. Nu a fost întotdeauna un tip este o clasa, de multe ori invers. Aceeași logică sau diferite în aceste clase fabrica nu îi mai pasă.