Treci la conținutul principal

Ce este un șablon de proiectare

Un șablon de proiectare este o soluție denumită și verificată în practică pentru o problemă care revine mereu în proiectarea software. Șabloanele nu sunt cod pe care îl copiezi — sunt forme pe care le recunoști: „aceasta este o problemă de împachetare”, „aceasta este o problemă de notificare”.

Catalogul clasic conține 23 de șabloane, adunate de patru autori cunoscuți ca Gang of Four. Cunoașterea lor îți dă două lucruri: răspunsuri gata făcute la probleme frecvente și un vocabular comun — a spune „folosește un adaptor aici” înlocuiește un paragraf întreg de explicații.


Cele trei familii

Cele 23 de șabloane se împart în trei familii:

Creaționale — cum sunt create obiectele: Singleton, Factory Method, Abstract Factory, Builder, Prototype.

Structurale — cum se îmbină lucrurile între ele: Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy.

Comportamentale — cum comunică lucrurile între ele: Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, Template Method, Visitor.

Fiecare șablon din acest grup are pagina sa: ce este, un exemplu care se poate rula, când se folosește, plus avantajele și dezavantajele lui.


Șabloanele în stil PHP

Catalogul a fost scris pentru limbaje construite în jurul claselor și al moștenirii — iar PHP este unul dintre ele. Clasele, interfețele și moștenirea se potrivesc direct cu catalogul clasic, iar fiecare pagină de aici le folosește.

PHP are și închideri (closures), iar șabloanele care au formă de funcție devin mai simple cu ele — o strategie poate fi doar o funcție pe care o transmiți mai departe. Fiecare pagină arată forma care se potrivește cel mai bine cu PHP.

O avertizare înainte să începi: șabloanele sunt unelte, nu scopuri. Folosirea unui șablon acolo unde ar fi de ajuns o funcție simplă face codul mai prost. Apelează la un șablon atunci când simți problema lui — niciodată înainte.