接口的华丽变身---外观模式和适配器模式

        之前对这两个设计模式没有太大的疑惑,但这次的软考让我感觉他俩怎么看怎么都是如出一辙,所以就将这两个仔细的对比对比。首先来看外观:

       外观模式,大家在机房收费中大家都使用过,它像一个平台却更像一个容器将所有的方法收集在这里,然后进行统一管理。所以说外观就像是电脑上使用的集线器,将鼠标线、键盘线、散热器线等都收集到一起,通过自身的功能进行整理。像下图显示的:

   

          外观模式的作用就像是红框中的那部分,将原本凌乱无序的多条线进行整理,为所有线中的数据操作提供一个平台,帮助它们实现自己的目标操作。用官方的图来表示就是:

   

          那么再来看适配器模式:适配器使用百度百科的解释来说就是“适配器就是一个转换器”,而将该解释生活化也就是:现在你有一根数据线,需要给手机充电,但由于数据线不能直接和插座相连,你只能苦苦等待,还好有一个东西可以帮你,那就是一个插头,左侧与数据线相连,而另一侧与插座相连,将插座中的电流通过插头和数据线导入到手机中,实现充电的效果。

        

             但需要注意的是,适配器模式有对象适配器和类适配器两种:

      (第一幅图为类适配器模式,第二幅为对象适配器模式图)


           但在Java中不允许多重继承所以Java版的设计模式只有对象适配器这一种。所以在该模式中,被适配者和适配者不一定是相同的事物,比如我们能不能使用适配器模式用火鸡冒充鸭子,那么应该怎么样的呢?

           

          这样的话,我们就可以使用适配器模式对火鸡的叫声、飞行等动作稍做调整后,“冒充”鸭子。

          所以外观中前后是一样的事物,只是外观进行了整理和归纳,而适配器模式是将一个事物“改变”为另一个不相同的事物。详细的总结如下:


       所以从某种角度来讲这两种模式是一样的,都让类华丽变身:前者为接口穿了一身简单大方的衣服,而后者则为接口演绎了一次“狸猫换太子”的佳话。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值