1、UML類圖如下
2、Decorator.java
package com.company.decorator;
public interface Decorator {
void show();
}
3、Person.java
package com.company.decorator;
public class Person implements Decorator {
@Override
public void show() {
System.out.println("一個人站立");
}
}
4、AbstractDecorator.java
package com.company.decorator;
public abstract class AbstractDecorator implements Decorator {
protected Decorator obj;
public AbstractDecorator(Decorator obj) {
this.obj = obj;
}
}
5、ShoesDecorator.java
package com.company.decorator;
public class ShoesDecorator extends AbstractDecorator {
public ShoesDecorator(Decorator decorator) {
super(decorator);
}
@Override
public void show() {
System.out.println("穿了一雙鞋");
this.obj.show();
}
}
6、TShirtDecorator.java
package com.company.decorator;
public class TShirtDecorator extends AbstractDecorator {
public TShirtDecorator(Decorator decorator) {
super(decorator);
}
@Override
public void show() {
System.out.println("穿了一個T-Shirt");
this.obj.show();
}
}
7、使用
public static void main(String[] args) {
//ShoesDecorator shoesDecorator = new ShoesDecorator(new Person());
//shoesDecorator.show();
ShoesDecorator ss = new ShoesDecorator(new TShirtDecorator(new Person()));
ss.show();
}
運行結果:
穿了一雙鞋
穿了一個T-Shirt
一個人站立