Está en la página 1de 14

Principios y Patrones de Diseño

Basado en el artículo “Principles and Patterns” de Robert C.


Martin

Arquitectura de software

Dominio de patrones de diseño: módulos y su


interconexión

Copyright © 2000 by Robert C. Martin. All Rights Reserved


INTRODUCCION:
 El diseño de muchas aplicaciones de
software comienza como una imagen o
idea en la mente de sus diseñadores.
 Los patrones de diseño son
descripciones de clases y objetos
relacionados que están adaptados para
resolver un problema de diseño general
en un contexto determinado.
SINTOMAS DE LA
DEGRADACION
 RIGIDEZ: Tendencia del software a ser
difícil de cambiar.
 FRAGILIDAD:Un cambio en alguna
parte de un software, ocasiona cambios
en otros sectores
 INMOVILIDAD: Inhabilidad de reusar
software
SINTOMAS DE LA
DEGRADACION
 VISCOSIDAD:

De entorno: Entorno de


desarrollo ineficiente.

De diseño: Cuando los métodos


de preservar el diseño son mas
difícil de emplear que los métodos
que no preservan el diseño.
PRINCIPIOS DE DISEÑO DE
CLASES
 PRINCIPIO ABIERTO-CERRADO
(OCP): Un módulo debe ser abierto para
extensión pero cerrado para
modificación.
 PRINCIO DE SUSTITUCION DE
LISKOV (LSP): Las subclases deben ser
sustitutas de sus clases base
PRINCIPIOS DE DISEÑO DE
CLASES
 PRINCIPIO DE INVERSION DE
DEPENDENCIA (DIP): Dependa de
abstracciones, no dependa de
implementaciones.
 PRINCIPIO DE SEGREGACION DE
INTERFACES (ICP):Los clientes de una
clase no deben depender de interfaces
que no utilicen.
PRINCIPIOS DE ARQUITECTURA
DE PAQUETES
 PRINCIPIOS DE COHESION DE
PAQUETES: Las clases en un mismo
paquetes se usan juntas.
 PRINCIPIOS DE ACOPLAMIENTO DE
PAQUETES: Son normas que rigen la
interrelación entre paquetes.
PRINCIPIOS DE COHESION DE
PAQUETES
 Principio de equivalencia de liberación y reuso
(REP): Agrupar las clases reusable en
paquetes que se puedan administrar y
controlar.
 Principio de agrupación común (CCP): Clases
que cambian juntas pertenecen a un mismo
grupo.
 Principio de reuso común (CRP): Clases que
no son rehusadas juntas no deben ser
agrupadas.
PRINCIPIOS DE ACOPLAMIENTO
DE PAQUETES
 Principio de dependencia acíclica (ADP): Las
dependencias entre paquetes no debe formar
ciclos.
 Principio de dependencia estable (SDP): La
dependencia debe ser en dirección de la
estabilidad.
 Principio de abstracción estable (SAP): Los
paquetes estables deben ser paquetes
abstractos.
PATRONES DE ARQUITECTURA
ORIENTADA A OBJETOS
La definición esencial de un patrón de
diseño es una buena solución,
conocida y desgastada, a un
problema común.
PATRONES DE ARQUITECTURA
ORIENTADA A OBJETOS
 Abstract Server: Cuando un cliente depende
directamente del servidor violamos el Principio
de Dependencia Inversa, este problema lo
resolvemos introduciendo una interface.
 Adapter: Se utiliza para transformar una
interfaz en otra, de tal modo que una clase
que no pudiera utilizar la primera, haga uso de
ella a través de la segunda
 Observer: Se usa cuando no queremos que el
detector sepa del actor.
PATRONES DE ARQUITECTURA
ORIENTADA A OBJETOS
 Bridge: Se usa para desacoplar una
abstracción de su implementación.
 Abstract Factory: Permite trabajar con
objetos de distintas familias de manera
que las familias no se mezclen entre sí y
haciendo transparente el tipo de familia
concreta que se esté usando.
CONCLUSION

 Los patrones de diseño describen


soluciones simples y elegantes a
problemas específicos de diseño de
software orientado a objetos.
 Los mismos representan soluciones que
han sido desarrolladas y han ido
evolucionando a lo largo del tiempo.
BIBLIOGRAFIA
 Principles and Patterns2009-Articulo de
Robert C Martin
 Programación en java: Fundamentos de
programación y principios de diseño
http://elvex.ugr.es/decsai/java/
 “Patrones de diseño”. Gamma, E.; Helm,
R.; Johnson, R.; Vlissides

También podría gustarte