定义
将一个类的接口转接成用户所期待的
优缺点
优点:
- 客户端通过适配器可以透明地调用目标接口。
- 复用了现存的类,程序员不需要修改原有代码而重用现有的适配者类。
- 将目标类和适配者类解耦,解决了目标类和适配者类接口不一致的问题。
- 在很多业务场景中符合开闭原则。
缺点:
- 适配器编写过程需要结合业务场景全面考虑,可能会增加系统的复杂性。
- 增加代码阅读难度,降低代码可读性,过多使用适配器会使系统代码变得凌乱。
结构
类适配器模式和对象适配器模式
类适配器类之间的耦合度比后者高,且要求程序员了解现有组件库中的相关组件的内部结构,所以应用相对较少些
实现 – 对象适配器
代码实现:
Target
package com.learn.Adapter;
// 目标接口
public interface Target {void request();
}
Adaptee
package com.learn.Adapter;
// 适配器接口
public class Adaptee {public void specificRequest()
{System.out.println(" 适配者中的业务代码逻辑 ");
}
}
ObjectAdapter
package com.learn.Adapter;
// 对象适配器类
public class ObjectAdapter implements Target{
private Adaptee adaptee;
public ObjectAdapter(Adaptee adaptee) {this.adaptee = adaptee;}
@Override
public void request() {adaptee.specificRequest();
}
}
Client
package com.learn.Adapter;
// 客户端
public class Client {public static void main(String[] args) {Adaptee adaptee = new Adaptee();
Target target = new ObjectAdapter(adaptee);
target.request();}
}
正文完