- 装饰模式可以在不改变原来类中代码的基础上,增强类中的方法
- 装饰类LDHWrapper和被装饰类LDH必须实现同个接口Star
- 装饰类中要定义属性为:被装饰类对象,同时定义构造方法
- 重写接口Star中的方法,如果需要增强方法,就重写逻辑
public interface Star {
void sing();
void dance();
}
public class LDH implements Star{
@Override
public void sing() {
System.out.println("ldh sing");
}
@Override
public void dance() {
System.out.println("ldh dance");
}
}
public class LDHWrapper implements Star {
private LDH ldh;
public LDHWrapper(LDH ldh) {
this.ldh = ldh;
}
@Override
public void sing() {
System.out.println("ldh dance in the sky");
}
@Override
public void dance() {
ldh.dance();
}
}