-
Consistencia de la Interface. La interface del Decorator
debe ser como la del Component que está decorando.
-
Clase Abstracta Decorator. No es necesario definir la clase abstracta
Decorator cuando se trabaja con una sola ConcreteDecorrator.
-
Que la clase Component sea "liviana": Para garantizar la interface,
los ConcreteComponet y los Decorator deben heredar de una
clase base común (Component). Es preferible que esta clase
común (Component) sea "liviana" osea que se preocupe más
por la interface que por guardar los datos. Si la clase base contiene una
grán cantidad de métodos y atributos, cada DecoratorComponent
contendría funcionalidades innecesarias haciendolos demasiado "pesados".
-
Cambiar la piel de un objeto: En el caso del patrón Decorator,
este se asimila como un mecanismo para cambiar la piel de objetos y no,
como el Patrón Strategy, para cambiar su contenido. esto
quiere decir que Decorator cambia los objetos desde afuera y no desde adentro.
|