Sunteți pe pagina 1din 15

Principii de proiectare orientate obiect

Lector

Gavril Cristian
Cuprins
I. Arhitectura software

II. Principii de proiectare la nivel de clase

III. Principii de proiectare la nivel de pachete
Arhitectura software
Arhitectura definete structura
aplicaiilor software

Etape de dezvoltare a unei aplicaii:
Analiza cerinelor
Proiectare
Implementare
Testare
ntreinere

Arhitectura software
Simptome ale sistemelor software cu
probleme de design:
Rigiditate tendina aplicaiei de a fi greu
de modificat
Fragilitate tendina aplicaiei de a
produce multe erori la o schimbare
Imobilitate imposibilitatea de a refolosi
codul
Vscozitate e mai greu de realizat
metoda corect
De design
De mediu
Cuprins
I. Arhitectura software

II. Principii de proiectare la nivel de clase

III. Principii de proiectare la nivel de pachete
Principii de proiectare a claselor
Principiul Unicei Responsabiliti
(Single Responsability Principle SRP)

Principiul Deschis/nchis
(Open/Closed Principle OCP)

Principiul Inversrii Dependenelor
(Dependency Inversion Principle DIP)

Principiul de Substituie Liskov
(Liskov Substitution Principle LSP)

Principiul Segregrii Interfeelor
(Interface Segregation Principle - ISP)
Principiul Unicei Responsabiliti
Def:
Un obiect trebuie s aib o singur
responsabilitate.
Un obiect trebuie s folosesc delegarea
pentru a realiza operaii care nu in de
responsabilitatea sa.
O responsabilitate trebuie localizat ntr-un
singur obiect i nu duplicat n mai multe
obiecte
Principiul Deschis/nchis
Def: Un modul trebuie s fie deschis pentru
extindere dar nchis pentru modificare
Exemplu greit de implementare:

Conexiune

Modem
Hayes
Modem
Bell
Modem
nou
Principiul Deschis/nchis
Def: Un modul trebuie s fie deschis pentru
extindere dar nchis pentru modificare
Exemplu corect de implementare:

Conexiune

Modem
Hayes
Modem
Bell
Modem
nou
Modem
Principiul Inversrii Dependenelor
Def: Dependen de lucruri abstracte, nu de
lucruri concrete
Aplicaie
Interfa
grafic
Windows
Interfa
grafic
Linux
Dependene ntr-o
arhitectur procedural:
Aplicaie
Interfa
grafic
Windows
Interfa
grafic
Linux
Dependene ntr-o
arhitectur orientat obiect:
Interfa
grafic
Principiul de Substituie Liskov
Def: O clas de baz trebuie s poate fi
substituit cu orice clas derivat din ea
Utilizator
Clas
derivat
Cerc
Clas de
baz
Eclips
Principiul Segregrii Interfeelor
Def: Sunt de preferat mai multe interfee client
specifice dect o interfa general
Server
Client
chat
Client
fiiere
Server
Client
chat
Client
fiiere
Server
chat
Server
fiiere
Cuprins
I. Arhitectura software

II. Principii de proiectare la nivel de clase

III. Principii de proiectare la nivel de pachete
Principii de proiectare a pachetelor
Principii de coeziune
Principiul de echivalen refolosire-
distribuie: granularitatea de refolosire
este granularitatea de distribuie
Principiul nchiderii comune: clasele
care se modific mpreun aparin
aceluiai pachet
Principiul folosirii comune: clasele
ce nu sunt refolosite mpreun nu trebuie
grupate n acelai pachet
Principii de proiectare a pachetelor
Principii de cuplare
Principiul dependenelor aciclice:
dependenele ntre pachete trebuie s nu
formeze cicluri
Principiul dependenelor stabile:
dependenele se realizeaz n direcia
stabilitii
Principiul abstractizrilor stabile:
pachetele stabile trebuie s fie pachete
abstracte

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