设计模式之适配器模式
适配器相当于一种中间件,转换器。
举个例子,当我们的电脑想再连接一个显示屏,但显示屏只有一个VGA口和VGA线,而我们的电脑只有一个HDMI口,那我们就需要一条HDMI转VGA的转换线来连接。
适配器模式有两种:类适配器、对象适配器,接口适配器
1、类适配器模式:
原理:通过继承来实现适配器功能。
当我们要访问的接口A中没有我们想要的方法 ,却在另一个接口B中发现了合适的方法,我们又不能改变访问接口A,在这种情况下,我们可以定义一个适配器p来进行中转,这个适配器p要实现我们访问的接口A,这样我们就能继续访问当前接口A中的方法,然后再继承接口B的实现类BB,这样我们可以在适配器P中访问接口B的方法了,这时我们在适配器P中的接口A方法中直接引用BB中的合适方法。
2、对象适配器模式:
原理:通过组合来实现适配器功能
当我们要访问的接口A中没有我们想要的方法 ,却在另一个接口B中发现了合适的方法,我们又不能改变访问接口A,在这种情况下,我们可以定义一个适配器p来进行中转,这个适配器p要实现我们访问的接口A,这样我们就能继续访问当前接口A中的方法,然后在适配器P中定义私有变量b(对象)(B接口类型的变量),再定义一个带参数的构造器用来为对象b赋值,再在A接口的方法实现中使用对象b调用其来源于B接口的方法。
3、接口适配器模式:
原理:通过抽象类来实现适配
当存在这样一个接口,其中定义了N多的方法,而我们现在却只想使用其中的一个到几个方法,如果我们直接实现接口,那么我们要对所有的方法进行实现,哪怕我们仅仅是对不需要的方法进行置空,也会导致这个类变得臃肿,调用也不方便,这时我们可以使用一个抽象类作为中间件,即适配器,用这个抽象类实现接口,而在抽象类中所有的方法都进行置空,那么我们在创建抽象类的继承类,而且重写我们需要使用的那几个方法即可。