常说的设计模式是23种设计模式,分为3大类:
一、创建型模式5种:工厂方法、抽象工厂、单例、建造者、原型
二、结构型模式7种:适配器、代理、桥接、装饰者、外观、享元、组合
三、行为型模式11种:模板方法、解释器、策略、观察者、迭代器、职责链、命令、备忘录、状态、访问者、中介者。
上次咱们把创建型模式的5种模式都介绍完了,还额外介绍了简单工厂模式。
这次课程,将开始介绍结构型模式7种的模式,第一个要介绍“适配器模式”。
结构型模式重点在于结构的变化。适配器模式典型的利用结构关系完成“适配”这样的说法。
“适配器模式”针对一个类包括类里的功能方法要和另一个类里的功能方法结合使用。从而,通过“适配器”来完成他们的结合。
首先,有一个“源类”,其实就是原本有的类,我们要对此类进行扩展。
其次,有一个“目标接口”,其实就是一个我们想要扩展成什么样的功能函数接口。
最后,不难想到,要从“源”中继承各个功能方法,并且要实现接口中指定的其他方法。
这样,“类适配器”就做好了。我们在使用的时候,直接使用适配器对象就能使用适配后的所有方法函数。
还有一种适配器的写法,就是“对象适配器”,顾名思义其实就是以对象形式完成“源”功能方法的使用。
适配器实现目标接口,重点是减少了继承关系,直接用组合的形式完成了“源”功能的使用,也就是“适配”。这样也比“类适配器”更符合“多用组合少用继承”的设计原则。
在对象适配器中,通过构造函数完成对源的对象的实例化。
在使用的时候,可以由适配器对象实例化,然后将源对象通过构造函数传入适配器属性中,从而可以调用适配后的所有功能方法。
给大家讲个故事,辅助了解适配器的应用场景。
在《水浒传》中有一个英雄人物叫“鲁智深”,江湖人称“花和尚”,就是因为,他身为和尚,除了打架没干过与和尚相关的其他事情。曾经"拳打镇关西"、"大闹五台山"、"火烧瓦官寺"、"倒拔垂杨柳"。但是和尚日常做的“吃斋、念经、打坐、撞钟”都没有做过。
目标接口是和尚
怎么样能把“源”和“目标接口”联合使用,让鲁智深能够是和尚不干和尚的事情,就要用到“适配器模式”。
适配器建立成抽象类,就能达到实现鲁智深不能实现的功能方法,而鲁智深能实现的”打架”就由鲁智深自己去实现吧。
“源”鲁智深
毕竟最终我们要用的对象是鲁智深对象,所以让鲁智深源继承适配器
最后经过适配后,直接使用鲁智深和尚的对象,就能应用所有功能方法。
鲁智深出击~~
声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:704559159@qq.com