lunes, 19 noviembre 2018

Necesito un Decorador

E-mail

 

La necesidad, de cambiar dinámicamente la funcionalidad o comportamiento de un objeto surge típicamente en una de estas dos situaciones. Primero, cuando el código fuente del objeto no está disponible, puede ser que el objeto sea un control ActiveX o una biblioteca, de clases de terceras partes que estemos utilizando. Segundo, cuando la clase es ampliamente utilizada; pero la responsabilidad específica, se necesita sólo en una o más situaciones particulares y pueda ser inapropiado agregar el código a la clase.


DecoradoresEn los artículos precedentes hemos visto varias vías para determinar la cantidad de la tasa a aplicar al 'precio' en función de la 'localidad'. El objeto, para el cálculo básico en cada caso trabaja exponiendo un método llamado CalcTax, que toma dos parámetros, un valor y un tipo de impuesto y devuelve la tasa calculada. Afrontamos, el problema de tratar con la tasa en el formulario, utilizando un patrón de puente para separar la implementación de la interfaz. No obstante, como hemos visto rápidamente, esto no fue suficientemente flexible para asociar diferentes índices de tasa a diferentes localidades.


El patrón, decorador nos permite solucionar el mismo problema sin necesidad de crear subclases. En lugar de definir un nuevo objeto, que tiene exactamente la misma interfaz como el cálculo de la tasa, pero que incluye además el código necesario para determinar la tasa apropiada para una localización dada. El objeto "mira", justo como el cálculo de la tasa como su cliente; pero, porque también guarda una referencia al objeto de cálculo de tasa, puede "pre-procesar", cualquier requerimiento de un índice y luego, simplemente puede dar la implementación real cuando esté lista.

 
Red de Sitios Latinos
 
Latinos