principios de diseño oo

30
Principios de Diseño en OO Diseño al cubo : Plan TDD Donostia, 03/06/2011

Upload: donewtech-solutions

Post on 08-Jul-2015

707 views

Category:

Technology


2 download

DESCRIPTION

Presentation about SOLID principles and others object-oriented programming principles

TRANSCRIPT

Page 1: Principios de diseño oo

Principios de Diseño en OO

Diseño al cubo : Plan TDD

Donostia, 03/06/2011

Page 2: Principios de diseño oo

2

Plan TDDPrincipios de diseño en OO

Agenda :Agenda :

– Principios SOLIDPrincipios SOLID

– Otros principiosOtros principios

– Bulego-lanakBulego-lanak

Page 3: Principios de diseño oo

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

Page 4: Principios de diseño oo

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

Page 5: Principios de diseño oo

5

Plan TDDSOLID

Page 6: Principios de diseño oo

6

Plan TDDSOLID

Report

print()

ReportPrinter

print()

ReportFormatter

formatReport()

DataAccess

getData()

Page 7: Principios de diseño oo

7

Plan TDDSOLID

OOpen pen CClose lose PPrinciplerinciple

Cerrado a la modificación

Abierto a la extensión

Abstracción

Previene introducir bugs

Page 8: Principios de diseño oo

8

Plan TDDSOLID

Page 9: Principios de diseño oo

9

Plan TDDSOLID

Page 10: Principios de diseño oo

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

Page 11: Principios de diseño oo

11

Plan TDDSOLID

Page 12: Principios de diseño oo

12

Plan TDDSOLID

Page 13: Principios de diseño oo

13

Plan TDDSOLID

Page 14: Principios de diseño oo

14

Plan TDDSOLID

Page 15: Principios de diseño oo

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”

Page 16: Principios de diseño oo

16

Plan TDDSOLID

Page 17: Principios de diseño oo

17

Plan TDDSOLID

Page 18: Principios de diseño oo

18

Plan TDDSOLID

Page 19: Principios de diseño oo

19

Plan TDDSOLID

Page 20: Principios de diseño oo

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

Page 21: Principios de diseño oo

21

Plan TDDSOLID

Page 22: Principios de diseño oo

22

Plan TDDSOLID

Page 23: Principios de diseño oo

23

Plan TDDSOLID

Page 24: Principios de diseño oo

24

Plan TDD

Agenda :Agenda :

– Principios SOLIDPrincipios SOLID

– Otros principiosOtros principios

– Bulego-lanakBulego-lanak

Principios de diseño en OO

Page 25: Principios de diseño oo

25

Plan TDDOtros principios

DRY KISSDRY KISS

Page 26: Principios de diseño oo

26

Plan TDD

YAGNIYAGNI

Otros principios

Page 27: Principios de diseño oo

27

Plan TDD

Agenda :Agenda :

– Principios SOLIDPrincipios SOLID

– Otros principiosOtros principios

– Bulego-lanakBulego-lanak

Principios de diseño en OO

Page 28: Principios de diseño oo

28

Bulego-lanak

Tarea:Tarea:

– Refactorizar “Refactorizar “encryptorencryptor””

– Aplicar los principios de diseñoAplicar los principios de diseño

Plan TDD

Page 29: Principios de diseño oo

29

¡Nos vemos en 15 días!¡Nos vemos en 15 días!

Bulego-lanak Plan TDD

Page 30: Principios de diseño oo

Ruben EgiluzSoftware Engineer

Donewtech Solutions, S.L.Zubiberri Bidea 31Edificio Urumea20018 Donostia – San Sebastián

+34 943 223 031www.donewtech.com

¡¡Gracias!!