principios de diseño oo
DESCRIPTION
Presentation about SOLID principles and others object-oriented programming principlesTRANSCRIPT
Principios de Diseño en OO
Diseño al cubo : Plan TDD
Donostia, 03/06/2011
2
Plan TDDPrincipios de diseño en OO
Agenda :Agenda :
– Principios SOLIDPrincipios SOLID
– Otros principiosOtros principios
– Bulego-lanakBulego-lanak
3
Plan TDDSOLID
–SSrp rp –OOcp cp –LLspsp– IIsp sp –DDip ip
Single Responsibility PrincipleSingle Responsibility Principle
Open Close PrincipleOpen Close Principle
Liskov Substitution PrincipleLiskov Substitution Principle
Interface Segregation PrincipleInterface Segregation Principle
Dependency Injection PrincipleDependency Injection Principle
4
Plan TDDSOLID
SSingle ingle RResponsibility esponsibility PPrinciplerinciple
No debe haber más de un motivo para que cambie una
clase Se favorece el
desacoplamiento de las clases
Primera solución: una interface por cada responsabilidad
5
Plan TDDSOLID
6
Plan TDDSOLID
Report
print()
ReportPrinter
print()
ReportFormatter
formatReport()
DataAccess
getData()
7
Plan TDDSOLID
OOpen pen CClose lose PPrinciplerinciple
Cerrado a la modificación
Abierto a la extensión
Abstracción
Previene introducir bugs
8
Plan TDDSOLID
9
Plan TDDSOLID
10
Plan TDDSOLID
LLivcov ivcov SSubstitution ubstitution PPrinciplerinciple
Diferenciar entre sub-tipo y sub-clase, Barbara Liskov
Previene abusar de la herencia y
el polimorfismo
Respetar las pre-condiciones y las post-condiciones
11
Plan TDDSOLID
12
Plan TDDSOLID
13
Plan TDDSOLID
14
Plan TDDSOLID
15
Plan TDDSOLID
IInterface nterface SSegregation egregation PPrinciplerinciple
No forzar a implementar métodos que no se utilizan
Evitar las interfaces “gordas”
Solución: separar las interfaces en varias “finitas”
16
Plan TDDSOLID
17
Plan TDDSOLID
18
Plan TDDSOLID
19
Plan TDDSOLID
20
Plan TDDSOLID
DDependency ependency IInjection njection PPrinciplerinciple
Los módulos superiores no debendepender de los módulos de los niveles inferiores
Las abstracciones no deben depender
de detalles, los detalles deben depender
de las abstracciones
21
Plan TDDSOLID
22
Plan TDDSOLID
23
Plan TDDSOLID
24
Plan TDD
Agenda :Agenda :
– Principios SOLIDPrincipios SOLID
– Otros principiosOtros principios
– Bulego-lanakBulego-lanak
Principios de diseño en OO
25
Plan TDDOtros principios
DRY KISSDRY KISS
26
Plan TDD
YAGNIYAGNI
Otros principios
27
Plan TDD
Agenda :Agenda :
– Principios SOLIDPrincipios SOLID
– Otros principiosOtros principios
– Bulego-lanakBulego-lanak
Principios de diseño en OO
28
Bulego-lanak
Tarea:Tarea:
– Refactorizar “Refactorizar “encryptorencryptor””
– Aplicar los principios de diseñoAplicar los principios de diseño
Plan TDD
29
¡Nos vemos en 15 días!¡Nos vemos en 15 días!
Bulego-lanak Plan TDD
Ruben EgiluzSoftware Engineer
Donewtech Solutions, S.L.Zubiberri Bidea 31Edificio Urumea20018 Donostia – San Sebastián
+34 943 223 031www.donewtech.com
¡¡Gracias!!