1. 定义

设计模式(十):装饰模式
优点:对象的扩展和对象本身区别开来,更加灵活
设计模式(十):装饰模式
缺点
设计模式(十):装饰模式
代理模式和装饰者模式的区别:

代理模式: 类A无法被直接访问,找到一个代理对象来控制其他程序对A的访问。(客户端并不知道他需要的功能是哪个类实现的,类似于nginx反向代理)

装饰者模式: 对类A的方法进行增强。

2. 继承实现对类的增强

假设有一个煎饼,8块钱
设计模式(十):装饰模式
加个鸡蛋,加一块
设计模式(十):装饰模式
加根肠,2块
设计模式(十):装饰模式
此时有一个问题:如果加1到100根肠的可能性都有,难道继承100次?
设计模式(十):装饰模式

3. 装饰模式实现对方法的增强

一个抽象的煎饼
设计模式(十):装饰模式
一个具体的煎饼
设计模式(十):装饰模式
抽象的装饰者的构造方法要求传入一个煎饼

设计模式(十):装饰模式

一个加鸡蛋的装饰者
设计模式(十):装饰模式
一个加火腿的装饰者
设计模式(十):装饰模式
测试
设计模式(十):装饰模式
类图
设计模式(十):装饰模式

相关文章:

  • 2022-01-05
  • 2022-12-23
  • 2021-12-01
  • 2021-03-30
  • 2021-07-25
  • 2021-10-29
猜你喜欢
  • 2018-06-11
  • 2021-05-03
  • 2022-01-19
  • 2021-09-18
  • 2022-01-23
  • 2021-08-12
相关资源
相似解决方案