public class main {
public static void main(String[] args) {
Decorator d1 = new Decorator1();
Decorator d2 = new Decorator2(d1);
Decorator d3 = new Decorator3(d2);
d3.decorator();
}
}
public abstract class Decorator {
public Decorator() { }
public Decorator(Decorator d) { }
abstract void decorator();
}
public class Decorator1 extends Decorator {
private Decorator decorator;
public Decorator1() {
super();
}
void decorator() {
System.out.println("执行装饰类 Decorator1 --- 装饰方法 Decorator");
}
}
public class Decorator2 extends Decorator {
private Decorator decorator;
public Decorator2() {
super();
}
public Decorator2(Decorator decorator) {
this.decorator = decorator;
}
void decorator() {
if(this.decorator!=null){
this.decorator.decorator();
}
System.out.println("执行装饰类 Decorator2 --- 装饰方法 Decorator");
}
}
public class Decorator3 extends Decorator {
private Decorator decorator;
public Decorator3() {
super();
}
public Decorator3(Decorator decorator) {
this.decorator = decorator;
}
void decorator() {
if(this.decorator!=null){
this.decorator.decorator();
}
System.out.println("执行装饰类 Decorator3 --- 装饰方法 Decorator");
}
}