🍥 装饰器模式

吞佛童子2022年6月20日
  • 设计模式
  • 结构型
  • 装饰器模式
大约 2 分钟

🍥 装饰器模式

1. 概述

1) 是什么

  • 装饰器模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案,提供比继承更多的灵活性。
  • 动态给一个对象增加功能,这些功能可以再动态的撤消,可以增加由一些基本功能的排列组合而产生的非常大量的功能
  • 动态地给一个对象添加一些额外的职责;就增加功能来说,Decorator模式相比生成子类更为灵活
  • 俄罗斯套娃一样层层包裹,层层装饰,每套一层就会多出一些功能出来,我们更可以自由搭配,实现不同的组合功能

2) 优点

3) 缺点


2. 代码示例

1) 场景 & 目标

  1. 商店中提供 2 种基本饮料:
  • 红茶
  • 咖啡
  1. 每种饮料都可以添加以下配料:
  • 牛奶
  • 焦糖
  • 芒果
  1. 用户可自定义自己想要什么饮料,并加什么配料,配料数量也不限,求它的价钱

2) 代码示例


3. 应用

1) Wrapper & Decorator

  • Spring中用到的包装器模式在类名上有两种表现:
    • 一种是类名中含有 Wrapper,
    • 另一种是类名中含有 Decorator

2) Java IO包里的众多流处理类

DataInputStream is = new DataInputStream( // 将输入流转换为 java 基本数据类型
                              new BufferedInputStream( // 给输入流添加 缓冲 功能
                                  new FileInputStream(filePath)));
上次编辑于: 2022/6/20 下午8:24:47
贡献者: liuxianzhishou