.NET Design Patterns and JavaScript Design Patterns

Design pattern-urile sunt solutii pentru problemele de design care se intalnesc zi de zi in diferite aplicatii.

Acestea se impart in 3 mari cetgorii:

    • Creational
  Abstract Factory Creaza o instanta a mai multor familii de clase
  Builder Separa crearea obiectului de reprezentarea lui
  Factory Method Creaza o instanta a mai multor clase derivate
  Prototype O instanta initializata, copiata si clonata
  Singleton O clasa poate avea o singura instanta
    • Structural
 Adapter Match-uieste interfate de la clase diferite
  Bridge Separa interfata unui obiect de implementare
  Composite O structura de tip “tree” a obiectele simnple si compuse
  Decorator Adauga responsabilitati obiectelor in mod dinamic
  Facade O singura clasa care reprezinta intrugul sistem
  Flyweight O instanta folosita pe sharing eficient
  Proxy Un obiect reprezinta un alt obiect
    • Behavioral
 Chain of Resp. Un mod de a pasa un request intre un lant de obiecte
  Command Incapsuleaza un request ca un obiect
  Interpreter Un mod de a include elemente de limba intr un program
  Iterator Acceseaza secvential elementele unei colectii
  Mediator Defineste comunicarea simplificata intre clase
  Memento Captureaza si recupereaza starea interna a unui obiect
  Observer Un mod de a notifica schimbarea la un numar de clase
  State Altereaza comportamentul unui obiect cand starea lui se schimba
  Strategy Incapsuleaza un algoritm in interiorul unei clase
  Template Method Amana pasii exacti ai unui algoritm la o subclasa
  Visitor Defineste o operatie noua a unei clase fara schimbari

1. Abstract Factory

Definitie= ofera o interfata pentru crearea famililor de obiecte ( dependente sau care au legatura unul cu celalalt) fara a specifica clasele lor concrete.

Diagrama

abstract

Participanti

  • AbstractFactory: declara o interfata pentru operatiile care creaza abstract products
  • ConcreteFactory: implementeaza operatiile pentru a crea product objects
  • AbstractProduct: declara o interfata pt un type of product object
  • Product: defineste un product object si implementeaza AbstractProduct interface
  • Client: foloseste cele 2 interfete

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s