Documente Academic
Documente Profesional
Documente Cultură
abloane de
Proiectare
Design Patterns
abloane de proiectare
abloane de Proiectare
Ne usureaz viaa.
n Ne ajut s organizm mai bine treaba
n Putem sa nelegem mai bine POO
n Uneori pot reduce ordinul de complexitate
al problemei...
n sau fac definiiile obiectelor mai uor de
neles
abloane de proiectare
abloane de proiectare
Dup scop:
abloanele creaionale (creational patterns) privesc
modul de creare al obiectelor.
abloanele structurale (structural patterns) se refer
la compoziia claselor sau al obiectelor.
abloanele comportamentale (behavioral patterns)
caracterizeaz modul n care obiectele i clasele
interacioneaz i i distribuie responsabilitile
Scop
Dom. de aplicare
abloane de proiectare
Obiect
Comportamentale
Factory Method
Adapter (clasa)
Interface
Marker Interface
Interpreter
Template Method
Immutable
Abstract Factory
Builder
Prototype
Singleton
Delegation
Adapter (obiect)
Bridge
Composite
Decorator
Facade
Flyweight
Proxy
Chain of Responsibility
Command
Iterator
Mediator
Memento
Observer
State
Strategy
Visitor
abloane de proiectare
Domeniu de aplicare:
abloanele
abloane de proiectare
Structurale
Clasa
Creationale
n
n
abloane de proiectare
nume si clasificare
intentie
cunoscut de asemenea ca
motivatie
aplicabilitate
structura
participanti
colaborari
consecinte
implementare
cod
utilizari cunoscute
sabloane cu care are legatura
abloane de proiectare
participant: Singleton
n colaborari: clientii clasei
n
Aplicabilitate
abloane de proiectare
Consecine
acces controlat la instanta unica
reducerea spaiului de nume (eliminarea variab.
globale)
permite rafinarea operaiilor si reprezentrii
permite un numar variabil de insante
mai flexibila dect operaiile la nivel de clas (statice)
11
Motivaie
abloane de proiectare
Intenia
Structura:
10
Implementare
abloane de proiectare
12
#include <iostream.h>
using namespace std;
class Singleton {
public:
static Singleton & instance() {
return uniqueInstance;
}
int getValue() {
return data;
}
void setValue(int value) {
data = value;
}
private:
static Singleton uniqueInstance;
int data;
Singleton(int d):data(d) {
}
Singleton & operator=(Singleton & ob);
Singleton(const Singleton & ob);
};
abloane de proiectare
Definete
13
abloane de proiectare
15
Intenia
Motivaia
Output:
100
9
abloane de proiectare
14
abloane de proiectare
16
Aplicabilitate
abloane de proiectare
Subject
Observer
n
ConcreteSubject
n
ConcreteObserver
n
n
17
abloane de proiectare
19
Structura
abloane de proiectare
Participanti
18
Colaboratori
abloane de proiectare
20
Consecinte
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
schimbari neasteptate
n
abloane de proiectare
21
n
n
n
abloane de proiectare
class Subject;
class Observer {
public:
virtual void Update(Subject * s) = 0;
virtual ~ Observer() {
};
};
abloane de proiectare
23
Implementare
#include <iostream>
#include <vector>
#include <string>
22
abloane de proiectare
24
nOutput
Banca BRD a fost notificata ca noua valoare a cursului este: 10
Banca BCR a fost notificata ca noua valoare a cursului este: 10
Banca BCR a fost notificata ca noua valoare a cursului este: 4
abloane de proiectare
25
abloane de proiectare
27
abloane de proiectare
28
Bibliografie
abloane de proiectare
26