Sobes.tech
Middle

Ce modele de proiectare cunoașteți?

sobes.tech AI

Răspuns de la AI

Crează:

  • Metoda Fabrica (Factory Method): Definește interfața pentru crearea unui obiect, dar permite subclasei să decidă ce clasă să instanțieze.
  • Fabrica Abstractă (Abstract Factory): Oferă o interfață pentru crearea familiilor de obiecte interconectate sau dependente fără a specifica clasele concrete.
  • Builder (Builder): Separă construcția unui obiect complex de reprezentarea sa, astfel încât același proces de construcție să poată crea diferite reprezentări.
  • Prototip (Prototype): Creează obiecte noi prin copierea unei instanțe existente.
  • Singleton (Singleton): Asigură că o clasă are o singură instanță și oferă un punct global de acces la ea.

Structurale:

  • Adapter (Adapter): Transformă interfața unei clase în alta pe care o așteaptă clienții.
  • Bridge (Bridge): Separă abstracția de implementarea sa pentru ca acestea să poată varia independent.
  • Composite (Composite): Combină obiecte într-o structură ierarhică pentru a reprezenta parte-întreg. Permite clienților să trateze obiectele individuale și compozițiile lor în mod uniform.
  • Decorator (Decorator): Adaugă dinamic responsabilități noi unui obiect. Este o alternativă flexibilă la subclasare pentru extinderea funcționalității.
  • Facade (Fasadă): Oferă o interfață unificată pentru un set de interfețe ale subsistemului. Face subsistemul mai ușor de utilizat.
  • Flyweight (Flyweight): Este folosit pentru partajarea eficientă a unui număr mare de obiecte similare.
  • Proxy (Proxy): Oferă un obiect substituent care controlează accesul la alt obiect.

Comportamentale:

  • Chain of Responsibility (Lanț de responsabilitate): Permite transmiterea solicitărilor pe un lanț de handleri. Fiecare handler decide să proceseze sau să transmită solicitarea mai departe.
  • Command (Comandă): Encapsulează o solicitare ca obiect, permițând parametrizarea clientului cu diferite solicitări, punerea lor în coadă sau înregistrarea lor, precum și suport pentru operații de anulare.
  • Iterator (Iterator): Oferă un mod de acces secvențial la elementele unui obiect compus fără a expune reprezentarea sa internă.
  • Mediator (Mediator): Definește un obiect care învelește modul în care un set de obiecte interacționează. Facilitează o legătură slabă, evitând referințele explicite între obiecte.
  • Memento (Memento): În mod invizibil, capturează și externalizează starea internă a unui obiect, astfel încât obiectul să poată fi restaurat la această stare ulterior.
  • Observer (Observator): Definește o dependență de tip "unu la mulți" între obiecte, astfel încât când un obiect își schimbă starea, toți cei dependenți de el sunt notificați și actualizați automat.
  • State (Stare): Permite unui obiect să își schimbe comportamentul atunci când starea internă se modifică. Pare că obiectul își schimbă clasa.
  • Strategy (Strategie): Definește o familie de algoritmi, encapsulează fiecare și le face interschimbabile. Permite algoritmului să varieze independent de clienți.
  • Template Method (Metoda Template): Definește scheletul unui algoritm într-o operație, amânând unele pași pentru subclase. Permite subclasei să redefinească anumite pași ai algoritmului fără a schimba structura sa.
  • Visitor (Vizitator): Reprezintă o operație care trebuie efectuată asupra elementelor unei structuri de obiecte. Permite definirea unei noi operații fără a modifica clasele elementelor pe care le operează.

Pe lângă modelele (GoF) de tip șablon, există și alte categorii, precum modelele de integrare corporativă sau modelele de microservicii. În plus, sunt frecvent utilizate modele arhitecturale precum MVC, MVP, MVVM.