Decorator——装饰器模式

装饰器模式是一种设计模式,能动态地给对象添加新的职责,比生成子类更加灵活。在Java流设计中广泛应用,如GZIPOutputStream通过装饰器增加了压缩功能。类图展示了装饰器如何通过递归构造实现功能组合,如BufferedOutputStream增加了缓冲功能。代码示例展示了装饰器的实际应用。
摘要由CSDN通过智能技术生成

一、定义

       GOF上对装饰器模式的意图这样描述:动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模式比生成子类更为灵活。从根本来说,装饰器模式将多态和委托结合在一起,使得我们可以动态地组合对象的行为。


二、场景设计

       装饰器模式的典型应用是Java里的流设计。在java中,通常每个流对象中包含另一个流对象,一个流对象通常会将自己预先处理过的字符或比特流转发给里层的另一个流对象。通常情况下,在装饰器模式中,类的实现依赖于作为构造方法参数的那个装饰器的对象。一个例子,GZIPOutputStream类实现write()操作的方法是:压缩接收到的比特,然后把他们写到作为构造方法参数传入的OutputStream对象中去。换句话说,GZIPOutputStream类在OutputStream对象的基础上添加了压缩操作。


三、类图

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值