引言
在刚开始承接需求的时候,大多数的开发者都采用了一种平铺式的开发思路,从头到尾,一个方法就将需求实现啦,简单又快捷。殊不知后续的维护成为了头疼的事情,真是开发一时爽,后续维护火葬场。新增需求就成为打补丁的工作,慢慢的就成了人们说的s山代码。
作为有追求的开发者来说,提高自身面向对象编程的能力成为了补强的一个点。其中设计模式对于改造代码结构起着非常重要的作用,并且主流框架里面也很多地方采用了设计模式的地方,因此熟悉设计模式,对于自己的需求实现还是理解其他项目也起着非常重要的作用。今天来记录一下另一个简单的设计模式-适配器模式(Adapter Pattern)
适配器模式
适配器模式是一种结构型设计模式,它允许将不兼容的接口转换为客户端所需的接口,从而让原本不兼容的类能够一起工作。
接下来,进行简单地介绍:
如图所示,在适配器模式中,通常包含以下的角色:
目标(Target):客户端期望接口,是适配器转换后的接口类型。
适配者(Adaptee):拥有客户端需要的功能,但是接口不符合客户端的期望。
适配器(Adapter):适配器本身是一个类,它持有对适配者对象的引用,并且实现了目标接口。
代码实例如下:
/**
* @堆代码 duidaima.com
* @date 2024/6/6 9:15
*/
public class Main {
public static void main(String[] args) {
Target target = new Adapter();
target.request();
}
}
// 目标接口,客户端期望调用的接口方法
interface Target {
void request();
}
// 适配者,拥有特定的功能方法
class Adaptee {
public void specificRequest() {
System.out.println("Adaptee's specific request.");
}
}
// 适配器,实现目标接口,并且引用了适配器
class Adapter implements Target {
Adaptee adaptee = new Adaptee();
@Override
public void request() {
adaptee.specificRequest();
}
}
代码解析:
• Main: 这是程序的入口点,首先创建了一个 Adapter 类的实例,并将其向上转型为 Target 接口的引用,然后调用了 request 方法。
• Target接口: 定义了客户端所期待的接口,在里面定义了 request 方法。
• Adaptee 类: 这是要被适配的类,它包含了一些有用的功能(在这个例子中是 specificRequest 方法),但是接口与客户端期望的不符。
• Adapter 类: 实现了 Target 接口,并在内部持有一个 Adaptee 类的实例。Adapter 的 request 方法内部调用了 Adaptee 的 specificRequest 方法,从而将客户端对 Target 接口的调用转换为了对 Adaptee 特定方法的调用。这就是适配的过程。
小结
这样,通过适配不同接口,可以实现增强系统灵活性和可维护性的目的。