Java中装饰者模式

  • 装饰模式可以在不改变原来类中代码的基础上,增强类中的方法
  • 装饰类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();
    }
}

posted @ 2022-09-29 13:52  pzistart  阅读(23)  评论(0编辑  收藏  举报