package patronDecorator; public class Main { public static void main(String[] args) { //Creo un componente ComponenteConcreto c = new ComponenteConcreto(); //decoradorConcretoA es un nuevo estado que vamos a aņadir al componente c. DecoradorConcretoA d1 = new DecoradorConcretoA(c); //decoradorConcretoA es un nuevo comportamiento que vamos a aņadir al estado d1. DecoradorConcretoB d2 = new DecoradorConcretoB(d1); /* Empieza en operacion() de DecoradorConcretoB -> * llama a super.operacion() que es Decorador -> * este a su vez llama al componente.operacion() * desde donde empieza la siguiente secuencia: * 1. Al llamar a operacion() de componente muestra mensaje de ComponenteConcreto.operacion(). * 2. Al llamar a operacion() de DecoradorConcretoA y le aņade el nuevo estado y muestra mensaje. * 3. Al llamar a operacion() de DecoradorConcretoB y muestra el mensaje de comportamiento B aņadido * 4. continuando en operacion() de DecoradorConcretoB muestra el mensaje DecoradorConcretoB.operacion() */ d2.operacion(); } }