简介
装饰者模式:不改变原有类的对象 , 动态地将额外的功能附加到该对象上 ;
主要适用于为一个组件进行功能扩展,并且能够动态的移除扩展。如BufferInputStream类可以装饰FileInputStream,也可以直接用FileInputStream类。
类图
装饰者模式由组件(Component)、装饰器(Decorator)组成,装饰器继承/实现了组件的父类,并且聚合一个组件对象。 这样做的好处是装饰器类中持有的Component对象不仅能接收Component子类对象,还能接收一个装饰器子类。(装饰器能够套用装饰器,也能套用组件)
实例:BufferInputstream
BufferInputStream为装饰器对象的实现类,继承了FilterInputStream(装饰器对象)
FilterInputStream对象不仅继承还聚合了InputStream对象,InputStream作为被装饰的Component对象抽象父类。只要继承了InputStream类的对象就能被装饰器装饰。如public class FileInputStream extends InputStream{}