Patrones de diseño y principios de Programación Orientada a Objetos

pensando...

Principios de Programación Orientada a Objetos y patrones de diseño

Principios de la programación orientada a objetos

  • Encapsula lo que varia
  • Favorece la composición de objetos frente a la herencia de clases
  • Programa para interfaces no para  implementaciones
  • Esfuérzate por un diseño débilmente acoplado entre objetos que interactúan

Patrones de diseño

¿Que es un patrón de diseño?

En ingeniería de software un patrón de diseño es una solución que alguien ya ha pensado para un problema que se presenta de forma habitual.

¿Cuales son los elementos esenciales de un patrón de diseño?

En general un patrón de diseño tiene los siguiente cuatro elementos:

  1. Nombre del patrón: Describe en una o dos palabras un problema de diseño junto con su solución y su consecuencia.
  2. Problema: Describe cuando aplicar el patrón. Explica el problema y su contexto. Es posible que se incluyan una serie de condiciones que han de cumplirse para que tenga sentido la aplliicación del patrón.
  3. Solución: Describe los elementos que constituyen el diseño, sus relaciones, responsabilidades y colaboradores. No describe una implementación en concreto. Se trata más bien de una plantilla que puede usarse para solucionar un problema abstracto.
  4. Consecuencias:  Son los los resultados obtenidos tras la aplicación del patrón así como sus ventajas e inconvenientes.

 

Tipos de patrones

Para estudiar los patrones de diseño se hace una distinción en función de su propósito entre:

  • Patrones de creación: Están relacionados con el proceso de creación de objetos.
  • Patrones estructurales: Tratan sobre la composición de clases y objetos
  • Patrones de comportamiento:  Caracterizan el modo en el que las clases y objetos interactuan.

Sin añadimos el ámbito al que afecta el patrón (Clase o Método) obtenemos la siguiente tabla.

Propósito
 ÁmbitoCreaciónEstructuralesComportamiento
ClaseFactory MethodAdapter(de clase)Interpreter
Template Method
ObjetoAbstrac FactoryAdapter (de objetos)Chain of Responsability
BuilderBridgeCommand
PrototypeCompositeIterator
SingletonDecoratorMediator
FaçadeMemento
FlyweightObserver
ProxyState
Strategy
Visitor

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *