Sunteți pe pagina 1din 14

DESIGN PATTERNS

SI DE CE M-AR INTERESA

1
DESIGN PATTERNS?
DE CE AS AVEA NEVOIE?

Adevarul este ca te-ai descurcat si fara


ele ca multi alti programatori, chiar
daca pe unele dintre ele le-ai
implementat poate fara sa stii.
Si atunci de ce sa te mai obosesti sa le
inveti?

2
MOTIVE PENTRU CARE…
T E - A R I N T E R E S A S A C U N O S T I D E S I G N PAT T E R N - U R I

Pentru ca sunt un set de instrumente incercate si testate care ofera solutii la probleme
comune in design-ul de software. Chiar daca poate nu te-ai intalnit cu aceste probleme,
cunoscand aceste tipare te vor ajuta sa rezolvi mai multe tipuri de probleme

Pentru ca acest set de instrumente te pot ajuta sa iti formezi un mod de comunicare
cu ceilalti programatori, chiar si la nivel abstract tot iti vor fi de folos pentru idei noi

3
PRINCIPII ALE UNU DESIGN BUN
R E U T I L I Z A R E A C O D U L U I & E X T E N S I B I L I TAT E A

Reutilizarea codului inseamna mai putina munca


repetitiva si mai multa munca de creatie care iti
vor oferi tie sau clientului tau o intrare pe piata
timpurie si cu potential crescut de functionalitati

Extensibilitatea inseamna sa te adaptezi la


cerintele pietei. Fiecare oferim ceva iar acel ceva
este supus schimbarii, la fel ca si viata unui
programator(pe plan profesional adica)

4
PRINCIPIILE DESIGNULUI
Encapsuleaza ce variaza

Identifica aspectele aplicatiei tale care variaza si separa-le de ceea ce


ramane neschimbat

Programeaza pentru o interfata

Structureaza-ti codul pentru o interfata, nu o implementare. Incearca sa


depinzi de o abstractizare si nu de o clasa concreta.

Favorizeaza compozitia decat mostenirea

- o subclasa nu reduce interfata unei superclase


- cand suprascrii metode trebuie sa te asiguri ca noul comportament
este compatibil cu cel de baza
- mostenirea rupe encapsularea superclasei
- subclasele sunt strans cuplate cu superclasele
- Incercand sa reutilizezi codul prin mostenire poate duce la ierarhii
paralele de mostenire(ceva….cam nasol)

5
PRINCIPIILE SOLID

6
CREATIONALE STRUCTURALE COMPORTAMENT

Factory Method Adapter Chain of responsibility

Builder Bridge Iterator

Prototype Decorator Observer

Singleton Facade State

7
FORD VS FERRARI
FA C T O R Y V S B U I L D E R

8
FACTORY METHOD
CONSTRUCTORUL VIRTUAL

E un design creational care pune la dispozitie o interfata pentru


a crea obiecte intr-o superclasa permitand subclaselor sa
modifice tipul de obiecte care vor fi create

9
BUILDER
E un design creational care te ajuta sa construiesti
obiecte complexe pas cu pas. Iti permite sa produci
diferite tipuri si reprezentari folosind acelasi cod de
constructie

10
ADAPTER
CUNOSCUT CA SI WRAPPER

E un design structural care permite obiectelor cu interfete


incompatibile sa colaboreze intre ele

11
BRIDGE
Un design pattern structural care te lasa sa
spargi o clasa mare sau un set de clase
apropiate in 2 ierarhii separate: abstractie si
implementare, care pot fi apoi dezvoltate
independent .

12
OBSERVER
SAU EVENT LISTENER, SUBSCRIBER

E un design comportamental care te lasa sa definesti un


mecanism de subscriptie pentriu a notifica mai multe obiecte
despre orice eveniment careia i se intampla obiectului sub
observatie

13
STATE
E un design comportamental care permite
unui obiect sa isi altereze comportamentul
cand mecanismele interne sunt schimbate.
Pare ca si cum obiectul si-a schimbat clasa.

14

S-ar putea să vă placă și