Diseño de aplicaciones orientadas a objetos
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
|
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<EFBFBD>adir al componente c.
|
|
|
|
|
DecoradorConcretoA d1 = new DecoradorConcretoA(c);
|
|
|
|
|
//decoradorConcretoA es un nuevo comportamiento que vamos a a<EFBFBD>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<EFBFBD>ade el nuevo estado y muestra mensaje.
|
|
|
|
|
* 3. Al llamar a operacion() de DecoradorConcretoB y muestra el mensaje de comportamiento B a<EFBFBD>adido
|
|
|
|
|
* 4. continuando en operacion() de DecoradorConcretoB muestra el mensaje DecoradorConcretoB.operacion() */
|
|
|
|
|
d2.operacion();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|