Modelele de design sunt clasificate în principal în trei categorii: Model de design creațional, model de proiectare structurală și model de proiectare comportamentală. Acestea diferă unele de altele pe baza nivelului lor de detaliu, complexitate și scară de aplicabilitate la întregul sistem care este proiectat.
Există, de asemenea, două tipuri de modele - idiomuri și modele arhitecturale. Dar nu le vom explora în acest tutorial.
Model de design creațional
După cum sugerează și numele, oferă mecanismul de creare a obiectelor sau a claselor care sporesc flexibilitățile și reutilizarea codului existent. Ele reduc dependența și controlează modul de utilizare a interacțiunii cu clasa noastră, astfel încât să nu ne ocupăm de construcția complexă. Mai jos sunt diferitele modele de design ale modelului de design creațional.
Fabrica de abstracte- Ne permite să creăm obiecte fără a specifica tipul lor concret.
Constructor - Este folosit pentru a crea obiecte complexe.
arbore binar în parcurgere în ordine
Metoda din fabrică - Ne permite să creăm obiect fără a specifica clasa exactă de creat.
Prototip - Este folosit pentru a crea un nou obiect din obiectul existent.
Singleton - Modelul de design Singleton asigurați-vă că există o singură instanță a unui obiect creat.
Modele de proiectare structurală
Modelele de proiectare structurală sunt responsabile în principal de asamblarea obiectelor și claselor într-o structură mai mare, asigurându-se că aceste structuri ar trebui să fie flexibile și eficiente. Ele sunt foarte esențiale pentru îmbunătățirea lizibilității și a menținerii codului. De asemenea, asigură că funcționalitățile sunt separate, încapsulate corespunzător. Reduce interfața minimă între lucrurile interdependente.
scaner în java
Adaptor - Ne oferă două clase incompatibile să lucreze împreună, înglobând o interfață în jurul uneia dintre clasele existente.
compozit - Învelește un grup de obiecte într-un singur obiect.
pod - Decuplează o abstractizare, astfel încât două clase să poată varia independent.
Decorator - Extinde comportamentul obiectului în mod dinamic în timpul rulării.
Fațada - Oferă o interfață simplă pentru obiecte subiacente mai complexe.
Greutate musca - Reduce costul modelului de obiecte complexe.
lista ca matrice
Proxy - Reduce costurile, reduce complexitatea și oferă interfață substituentă unui obiect subiacent pentru a controla accesul.
Model de proiectare a comportamentului
Modelele de design de comportament sunt responsabile pentru modul în care o clasă comunică cu ceilalți.
Lanțul de responsabilitate - Reprezintă comanda unui lanț de obiecte de procesare.
Comanda - Acesta generează obiectele care încapsulează acțiunile parametrilor.
eol în piton
interpret - Implementează un limbaj specializat.
Iterator - Accesează secvențial toate elementele unui obiect fără a-i încălca reprezentarea subiacentă.
metode java
mediator - Oferă o cuplare liberă între clase, fiind singura clasă care are cunoștințe detaliate despre metodele lor existente.
Memento - Restaurează un obiect în starea anterioară.
observator - Permite unui număr de obiecte observatoare să vadă un eveniment.
Stat - Permite unui obiect să-și modifice comportamentul atunci când stările sale interne se schimbă.
strategie - Oferă una dintre familiile de algoritm care trebuie selectat în timpul execuției.
Metoda șablonului - Permite subclaselor să ofere un comportament concret. De asemenea, definește scheletul unui algoritm ca o clasă abstractă.
vizitator - Separă un algoritm de o structură de obiect prin mutarea ierarhiei metodelor într-un singur obiect.
Vom afla câteva modele importante de design în următorul tutorial.