装饰者模式

简介

装饰者模式:不改变原有类的对象 , 动态地将额外的功能附加到该对象上 ;

主要适用于为一个组件进行功能扩展,并且能够动态的移除扩展。如BufferInputStream类可以装饰FileInputStream,也可以直接用FileInputStream类。

类图

装饰者模式_第1张图片
装饰者模式由组件(Component)、装饰器(Decorator)组成,装饰器继承/实现了组件的父类,并且聚合一个组件对象。 这样做的好处是装饰器类中持有的Component对象不仅能接收Component子类对象,还能接收一个装饰器子类。(装饰器能够套用装饰器,也能套用组件)

实例:BufferInputstream

BufferInputStream为装饰器对象的实现类,继承了FilterInputStream(装饰器对象)
在这里插入图片描述
FilterInputStream对象不仅继承还聚合了InputStream对象,InputStream作为被装饰的Component对象抽象父类。只要继承了InputStream类的对象就能被装饰器装饰。如public class FileInputStream extends InputStream{}
装饰者模式_第2张图片

你可能感兴趣的:(设计模式,java,开发语言,装饰器模式)