设计模式之美学习-结构型-装饰者模式(二十一)

什么是装饰者模式

在不破坏被装饰类的业务逻辑的情况下进行增强 同时支持装饰多层,与代理模式很像 装饰者侧重增强,代理侧重控制

 装饰器模式强调的是增强自身,在被装饰之后你能够在被增强的类上使用增强后的功能。增强后你还是你,只不过能力更强了而已;代理模式强调要让别人帮你去做一些本身与你业务没有太多关系的职责(记录日志、设置缓存)。代理模式是为了实现对象的控制,因为被代理的对象往往难以直接获得或者是其内部不想暴露出来。

比如RequestWarper 装饰后让response Body支持重复读

Java IO

类图

 

使用

//FileInputStream是转为用于读取文件流的类
InputStream in = new FileInputStream("/user/wangzheng/test.txt");
//是一个支持带缓存功能的数据读取类 对in进行装饰实现增加 带有缓存
        InputStream bin = new BufferedInputStream(in);
        byte[] data = new byte[128];
        while (bin.read(data) != -1) {
        //...
        }

 

posted @ 2020-03-25 17:59  意犹未尽  阅读(148)  评论(0)    收藏  举报