You are on page 1of 19

Prof.

Jennifer Fuentes Bustos


Escuela de Informtica
Universidad Nacional

Son un conjunto de recomendaciones que


nos permitirn desarrollar cdigo ms
robusto y reutilizable.

Principio Abierto Cerrado.


Principio de Sustituibilidad de Liskov.
Principio de Inversin de Dependencias.
Ley de Demter.
Segregacin de Interfaces.
Principio de Responsabilidad nica.

Una clase debe ser cerrada, es decir, estable y


bien definida.
Una clase debe ser cerrada, es decir, ser
reutilizada por otros clientes/usuarios.
Una clase debe ser abierta, es decir, estar
disponible a ser extendida por medio de la
herencia.

PERSONA

ESTUDIANTE

DOCENTE

Permite sustituir cualquier instancia de la clase


base por una instancia de la clase derivada.
Hijo *h = new Hijo();
Padre *p = h;

Aquellos mtodos que utilicen referencias a


clases bases deben ser capaces de usar objetos
de clases derivadas sin notar la diferencia.
La creacin de una clase derivada provoca
cambios en una clase base, mal diseo.

PADRE

Hija *h = new Hija();


Padre *p = h;
BIEN

HIJA

Padre *p = new Padre();


Hija *h = p;
MAL

Cuando la implementacin de una o varias


clases pueden cambiar en un futuro, deben
de depender de clases abstractas o clases
interfaces y no directamente entre ellas.
Los mdulos de alto nivel no deben depender
de los mdulos de bajo nivel. Ambos deben
depender de las abstracciones.

DOCUMENTO

DOCUMENTO
TRAMITE

MAL

Depende
CLASE X

DOCUMENTO

BIEN
Depende

DOCUMENTO
TRAMITE

CLASE X

Las dependencias no deben ser transitivas.


Depende

CLASE X

CLASE Y

Depende

CLASE Z

Depende

Debemos evitar las cadenas de mtodos, de


la siguiente forma:
a.getX().getY().getValue();

Sustituirla por un mtodo que realice dicha


accin:
a.getXYValue();

Los clientes no deben ser forzados a


depender de interfaces que no utilizan.

TEMPORIZADOR

PUERTA

PUERTA CON
ALARMA

PUERTA

TEMPORIZADOR

No se recomienda

PUERTA CON
ALARMA

Este principio dice que una clase solamente


debe tener un propsito.

INVENTARIO

Control
Control
Control
Control
Control

de
de
de
de
de

Bodegas
Productos
Ventas
Clientes
Proveedores

PROVEEDOR

PRODUCTO

BODEGA

VENTA

CLIENTE

You might also like