设计模式-装饰者模式

装饰者模式(decorater),顾名思义.就是在原有的基础上,再进行一层包装java

JDK中的io就是用此模式.InputStreamReader包装了InputStram。ide

由于全部的IO流最终走的都是字节流.而字符集直接操做封装好了的字节流那就能够提升效率this

设个场景吧,咱们去一点点买奶茶,品类繁多.珍珠奶茶、茉香奶茶、抹茶奶茶、奥利奥奶茶code

public interface MilkyTeaI {
    /**
     * 开始制做
     */
    void excute();
}
public class MilkyTea implements MilkyTeaI{
    @Override
    public void excute() {
        System.out.println("制做奶茶成功");
    }
}
public class MochaMilkyTea implements MilkyTeaI{
    private MilkyTeaI milkyTeaI;

    public MochaMilkyTea(MilkyTeaI milkyTeaI) {
        this.milkyTeaI = milkyTeaI;
    }

    @Override
    public void excute() {
        milkyTeaI.excute();
        System.out.println("添加抹茶成功");
    }
}
public class MochaZhenzhuMilkyTea implements MilkyTeaI{
    private MilkyTeaI milkyTeaI;

    public MochaZhenzhuMilkyTea(MilkyTeaI milkyTeaI) {
        this.milkyTeaI = milkyTeaI;
    }

    @Override
    public void excute() {
        milkyTeaI.excute();
        System.out.println("添加珍珠成功");
    }
}
public class Demo {
    public static void main(String[] args) {
        MilkyTeaI milkyTeaI = new MochaMilkyTea(new MilkyTea());
        milkyTeaI.excute();
    }
}

控制台console:io

制做奶茶成功
添加抹茶成功console

相关文章
相关标签/搜索