设计模式之适配器模式《一》
一、简介
适配器模式的作用:将一个类的接口变成用户所需的另一种接口,从而使两个接口不匹配到匹配的过程。
二、应用场景
通常被用于一个项目需要引用一些开源框架来一起工作的情况下,这些框架内部都有一些关于环境信息的接口,需要从外部传入,但外部接口不一定能匹配,在这种情况下就需要用到适配器模式了。
三、具体介绍
适配器模式分三种:类适配器、对象适配器、接口适配器。前两种实现有差别,作用一样,最后一种,则完全与前两者不同。
1.类适配器
实现原理:通过继承实现
当我们访问接口A,但是A中没有我们需要的方法B,正好在接口C中却有方法B的实现,而我们又不能改变访问A接口,那怎么办呢?我们可以创建D类来实现接口C,再创建类Adapter继承D类并且实现接口A,在类Adapter实现接口A中的某个方法中嵌入方法B,就可以达到调用接口C的方法B的适配器,调用接口A指向类Adapter,再调用方法B
2.对象适配器
实现原理:通过组合实现
当我们访问接口A,但是A中没有我们需要的方法B,正好在接口C中却有方法B的实现,而我们又不能改变访问A接口,那怎么办呢?我们可以创建D类来实现接口C,再创建类Adapter实现接口A,把接口C作为私有成员变量,创建构造器把接口C作为形参为私有变量C赋值。实现A接口的某个方法中调用方法B,调用接口A指向类Adapter(构造器传接口B),再调用方法B
3.接口适配器
实现原理:通过抽象类实现
当我们访问接口A,A中有很多方法,而我们根本不需要调用所有方法,可能一个或多个,如果实现接口A就意味着我们要实现所有的方法(即使方法体空着,代码也会看起来很臃肿),这是我们不情愿看见的,那么怎么办呢?我们可以创建一个抽象类Adapter,实现接口A,再创建B类继承抽象类Adapter,实现我们所需要调用的方法即可。
四、举例
1.inputStreamReader和outputStreamWriter类就是适配器,用于inputStream和outputStream适配Reader和Writer接口。
2.StringReader适配器将一个String类适配到Reader接口。
浙公网安备 33010602011771号