08 Decorator装饰器模式(结构型)

本文探讨了装饰器模式在咖啡订购系统中的运用,通过动态地为对象添加职责,实现了灵活的功能扩展,避免了类爆炸的问题。以深度烘焙咖啡为例,展示了如何通过装饰器模式轻松地添加摩卡和奶泡。
    • 摩卡里有has a深度烘焙咖啡
    • 满足的原则:开放封闭
    • 装饰器模式:
      • 当你想赋予一个对象一些动态职责时,用decorator
      • 装饰器为扩展功能提供了一个灵活的子类替代方法。
        • 动态扩展;
        • 比继承好;

 

    • 什么时候用:
      • 在不影响其他对象的情况下,动态地向单个对象添加职责。
      • 当子类化扩展不现实时。(不能向子类添加新方法)

有时候,大量的独立扩展是可能的,并且会产生大量的子类来支持每一个组合。或者类定义可能被隐藏,或者在子类化时不可用。

 

    • 好处:更灵活,避免类爆炸,很多行为组合可被创建
    • 缺点:装饰器和它的组件是不一样的;类(对象)太多
    • 实现:
      • 接口一致,一个装饰器的接口与其装饰组件的接口一致
      • 保持组件类的轻量化
    • 参与者:
      • component组件:为对象定义可以动态添加职责的接口。
      • concrete具体构件:定义一个可以附加额外责任的对象。
      • 装饰器:维护对一个组件对象的参数并定义符合组件接口的接口。
      • 具体装饰器:向组件添加职责。

    • 例:在深度烘焙咖啡上加两份摩卡,一份whip

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值