Pregunta

¿Alguien puede explicar por qué el nombre " Decorador " fue elegido por la funcionalidad transmitida por el patrón de diseño Decorator?

Siempre he encontrado ese nombre bastante engañoso, porque el decorador y la interfaz de marcado suenan muy similares a mí en su propósito. Sin embargo, mientras que un marcador realmente no hace nada, los decoradores ciertamente lo hacen. Pero el término decoraciones para mí implica pasividad, que en realidad no es el caso con este patrón que se usa para agregar funcionalidad.

¿Fue útil?

Solución

Creo que el origen del término proviene del ejemplo de uso de la decoración de una interfaz de usuario con diferentes componentes, por ejemplo, barras de desplazamiento, botones de cierre, etc.

EDITAR: página de referencia 308 en " Patrones de diseño en C # " por Steven John Metsker:

  

Una de las aplicaciones originales de DECORATOR (y probablemente la aplicación de la cual DECORATOR deriva su nombre) reside en la construcción de componentes GUI.

Otros consejos

Creo que la analogía es que cuando decoras una casa realmente no rompes ninguna pared ni nada por el estilo, solo colocas algunas cosas (tantas como quieras) de una manera que cambia su aspecto (y su funcionalidad). Creo que esta palabra fue elegida para implicar no intrusión, y también algo opcional.

Un decorador " decora " una interfaz al agregar funcionalidad adicional a los métodos existentes, pero en realidad no agregar ninguno de los suyos. La decoración no es esencial para la funcionalidad base; de lo contrario, se habría integrado en la clase base.

Porque estás agregando nueva funcionalidad a un objeto existente. En esencia, estás " decorando " El objeto con la nueva funcionalidad.

Oye, déjalo a los geeks para inventar nombres.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top