装饰器和外观模式

装饰器和外观模式

当第一眼看到这两个模式的时候,我感觉很相同,但是当我认真的学习了相关知识的时候,发现差别很大。举个例子理解的话:对于一杯奶茶而言:

装饰器模式:就是在奶茶里面加椰果、加珍珠、加燕麦等等。通过一种加入的方式,给已有的东西添加功能

外观模式:就是奶茶店的招牌,你不需要知道每个奶茶是怎么做的,你只需要调用招牌,选择一种奶茶,然后别人就会给你你想要的奶茶。将一个系统或者一个功能组的所有接口封装成一个类,这就是外观模式,从外而观之的接口。

 

我只是在进行学习的时候将两种模式进行了联合使用,而不意味着这两种模式就只能一起使用。

对于一杯奶茶而言,一杯奶茶是一个具体的东西,而装饰器模式就是给奶茶里面添加椰果、燕麦、珍珠等等的配料,而在在代码中就表示为为一个已经存在的类,附加一些其他的功能,但是在使用的时候,不同的地方所需要的功能不尽相同,因此如果直接使用继承来实现所有的功能会造成资源的浪费,因此产生了装饰器模式,将大部分的功能以一个个外部挂接类来补充具体类,你在不同的地方只需要对具体类进行包装,使其具备需要具备的功能即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 类适配模式 类适配模式通过继承来适配一个类的接口,使得原本不兼容的类可以一起工作。它的特点是:适配继承了需要适配的类,并实现目标接口,从而将原本不兼容的接口适配成了目标接口。 2. 对象适配模式 对象适配模式通过组合来适配一个类的接口,使得原本不兼容的类可以一起工作。它的特点是:适配持有需要适配的类的实例,并实现目标接口,从而将原本不兼容的接口适配成了目标接口。 3. 桥接模式 桥接模式将抽象和实现分离开来,使它们可以独立地变化。它的特点是:将抽象和实现通过一个桥接的接口连接起来,从而使得它们可以独立地变化,而不会相互影响。 4. 组合模式 组合模式将对象组合成树形结构来表示“部分-整体”的层次结构。它的特点是:叶子对象和组合对象具有相同的接口,可以被一致对待,从而使得客户端可以统一处理。 5. 外观模式 外观模式提供一个统一的接口,用来访问子系统中的一群接口。它的特点是:外观对象封装了子系统中的一群接口,从而对客户端隐藏了子系统的复杂性。 6. 装饰模式 装饰模式动态地给一个对象添加一些额外的职责。它的特点是:装饰和被装饰的对象实现相同的接口,从而对客户端来说,它们是透明的,可以互相替换。同时,装饰可以动态地给被装饰的对象添加职责,而不需要修改它的接口或实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值