这是装饰模式的结构图:
这是Stream类及相关类示意图:
Stream是一个抽象类,它在System.IO里面,它其实就是Component。FileStream、NetworkStream、MemoryStream都是实体类ConcreteComponent。右边的BufferedStream、CryptoStream是装饰对象,它们都是继承了Stream抽象类的。BufferedStream继承自Stream,又含有Stream作为字段。有一点不同的是,BufferedStream这个具体的装饰类没有抽象类,直接继承自抽象主体Stream接口,它让Decorator抽象类退化了,但这点不同并不影响Decorator模式的本质。
————出自