Patrones de diseño estructurales: Bridge

0 comentarios
Intención del patrón
  • Desacoplar una abstracción de su implementación de manera que ambas puedan variar independientemente.
  • Publicar la interfaz en una jerarquía de herencias y ocultar la implementación en su propia jerarquía de herencia.
  • Además de encapsulación, se usa para aislamiento.

Ejemplo de problema
"El endurecimiento de las arterias del software" ha ocurrido por el uso de subclases de una clase base abstracta para proporcionar implementaciones alternativas. Esto "suelda", en tiempo de compilación, la unión entre la interfaz y la implementación. La abstracción y la implementación no pueden ser extendidas o compuestas de manera independiente.

Patrones de diseño estructurales: Adapter

0 comentarios
Intención del patrón
  • Convertir la interfaz de una clase en otra interfaz que el cliente espera. Adapter permite trabajar a clases de manera conjunta que de otra manera sería imposible por incompatibilidad de interfaces.
  • Envolver una clase existente con una nueva interfaz.
  • Necesidad de coincidir con la interfaz de un viejo componente con un nuevo sistema.

Ejemplo de problema
Un viejo componente una convincente funcionalidad que invita a reutilizarlo, pero su "visión del mundo" no es compatible con la filosofía y arquitectura del sistema actualmente en desarrollo.

Patrones de diseño creacionales: Singleton

0 comentarios
Intención del patrón
  • Asegura que una clase tiene una única instancia y proveer un punto de acceso global a ella.
  • Inicialización "just-in-time" o inicialización "on first use" encapsulada.

Ejemplo de problema
La aplicación necesita una y sólo una instancia de un objeto. Adicionalmente se necesita una inicialización perezosa (lazy initialization) y acceso global.

Patrones de diseño de creación: Prototype

2 comentarios
Intención del patrón
  • Especifica los tipos de objetos a crear utilizando una instancia prototipo, y crear nuevos objetos mediante la copia de este prototipo.
  • Cooptación de una instancia de una instancia para usarlo como un prototipo de todas las instancias futuras.

Ejemplo de problema
La aplicación especifica de forma dura la clase de objeto que debe crear con cada expresión new.

Patrones de diseño de creación: Object pool

3 comentarios
Intención del patrón
Utilizar un pool (o agrupamiento) de objetos puede ofrecer un significativo aumento de rendimiento. Es más eficaz en situaciones donde el costo de la inicialización de instanciar una clase es alta, el ritmo de instanciación de la misma también es alta, pero el número de instancias en uso en cualquier momento es baja.


Ejemplo de problema
Los agrupamientos de objetos (también conocidos como agrupamientos de recursos) se utilizan para gestionar el caché de objetos. Un cliente con acceso a un agrupamiento de objetos puede evitar crear nuevos objetos simplemente pidiendo al agrupamiento uno que haya sido instanciado antes con anterioridad. En general, la agrupación será cada vez mayor, es decir, el agrupamiento va a crear por sí mismo nuevas instancias si está vacío, o bien, podría tratarse de un pool que restringe la cantidad de objetos creados.

Patrones de diseño de creación: Factory Method

0 comentarios
Intención del patrón

  • Definir una interfaz para crear un objeto, pero dejar que las subclases decidan cuál clase instanciar. Factory Method permite a una clase diferir la instanciación a subclases.
  • La definición de un constructor "virtual".
  • Que el operador new sea considerado dañino.

Ejemplo de problema
Un framework necesita estandarizar el modelo de arquitectura para una variedad de aplicaciones, pero permitirle las aplicaciones definir de manera individual sus propios objetos de dominio y asegurar su instanciación.
 
Copyright 2009 Programación SOLIDa
BloggerTheme by BloggerThemes | Design by 9thsphere