Patrones de diseño estructurales: Private Class Data

0 comentarios

Intención del patrón


  • Controlar el acceso de escritura a los atributos de la clase.
  • Separar los datos de los métodos que los usan.
  • Encapsular la inicialización de datos de la clase.
  • Proporcionar la forma de que una vez asignado el valor de un atributo, no vuelva a modificarse.


Ejemplo de problema

Una clase que exponer sus atributos (variables de clase) para ser manipulados. Cuando dicha manipulación ya no es deseada, por ejemplo, tras la ejecución del constructor. El uso del patrón de diseño Private Class Data previene dicha manipulación no deseada.
Una clase puede tener atributos variables que no pueden ser declarados como final. Usando este patrón de diseño permite la asignación por única vez de este tipo de atributos.
La motivación por este patrón de diseño proviene del objetivo de proteger el estado de la clase reduciendo al mínimo la visibilidad de sus atributos.

Patrones de diseño estructurales: Flyweight

0 comentarios
Intención del patrón
  • Comparte para soportar un gran número de objetos de grano fino de manera eficiente.
  • La estrategia de GUI Motif de reemplazo de widgets pesados por widgets livianos.


Ejemplo de problema
El diseño de los objetos hasta los niveles más bajos de granularidad del sistema proporciona una óptima flexibilidad, pero puede resultar inapropiadamente costosa en términos de rendimiento y uso de memoria.

Patrones de diseño estructurales: Facade

2 comentarios
Intención del patrón
  • Proveer una interfaz unificada para un conjunto de interfaces en un subsistema. El patrón Facade define una interfaz de alto nivel que hace que el subsistema sea fácil de usar.
  • Envolver un subsistema complicado con una interfaz simple.

Ejemplo de problema
Un segmento de la comunidad de clientes necesita una interfaz simplificada para toda la funcionalidad de un subsistema complejo.

Patrones de diseño estructurales: Decorator

0 comentarios
Intensión del patrón
Agregar responsabilidades adicionales a un objeto dinámicamente. El patrón Decorator proporciona una alternativa más flexible que la herencia para extender funcionalidad.
Embellecimiento específico para el cliente de un objeto Core envolviéndolo recursivamente (Wrapping). Como envolver un regalo y ponerlo en una caja. Y finalmente envolver la caja.

Ejemplo de problema
Se quiere agregar nuevo comportamiento o estado a un objeto individual en tiempo de ejecución. La herencia no es factible debido a que es estática y se aplica a toda una clase.

Patrones de diseño estructurales: Composite

0 comentarios
Intensión del patrón

  • Componer objetos en estructuras de árbol para representar jerarquías totales o parciales. El patrón Composite permite a los clientes tratar objetos individuales y compuestos de manera uniforme.
  • Composición recursiva. "Los directorios contienen entradas y cada una de ellas puede ser un directorio".


Ejemplo de problema
Una aplicación necesita manipular una colección jerárquica de objetos "primitivos" y "compuestos". El procesamiento de un objeto primitivo se maneja de una manera y el procesamiento de un objeto compuesto se maneja de otra. El tener que consultar el "tipo" de cada objeto antes de intentar procesarlo, no es deseable.

Libro recomendado: Clean code

2 comentarios
Clean code
A hand book of agile Software Craftmanship

Autor: Robert C. Martin

Descripción: incluso el mal código puede funcionar. Pero si no es claro, puede poner de rodillas a una organización de software. Cada año, incontables horas y recursos significativos se pierden debido a código pobremente escrito. Pero esto no tiene que ser así.

Comentario: Posee numerosas recomendaciones sobre escritura de código para que sea claro de leer y entender por quien lo lee. Porque éste no sólo es escrito, sino también leído, ya sea por uno mismo o por otras personas, es que debe ser escrito de una manera clara y simple.
 
Copyright 2009 Programación SOLIDa
BloggerTheme by BloggerThemes | Design by 9thsphere