代理模式和装饰者模式

代理模式和装饰器模式的区别要从类的调用者的角度来看。

代理模式:业务无关,用户无感知
装饰器模式:业务相关,用户可选择
对于代理模式,调用者不需要知道代理类中有哪些额外的功能模块,直接调用代理类即可。正如我们找别人“代理”办事一样,我不需要知道代理人为我们多做了哪些事,我们只关心我们交代的事情有没有办好。
而对于装饰器模式,调用者则需要知道装饰类提供的额外的功能,来满足定制化的服务。就好比买手机时的套餐服务,我们不仅关心手机的好坏,我们还关心提不提供保修、送不送充电器等额外的服务。
对于增加“缓存”功能这一具体场景来说:对于类的设计者来说,如果设计者认为“缓存”功能对于调用者来说在任何时刻都是必要的,那么则选择代理模式;如果设计者认为“缓存”功能对调用者来说是可有可无的,希望调用者根据自己的需要来定制的,那么则选择装饰器模式

本质都是:“组合优于继承”,将调用方的请求给委托类

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值