1.结构型模式:从程序结构上实现松藕合,从而可以扩大整体的类结构,用来解决更大的问题
分类:适配器模式,代理模式,桥接模式,装饰模式,组合模式,外观模式,享元模式
2.适配器模式:将一个类的接口转换成客户希望的另一个接口。Adapter模式使得原本由于接口不兼容而不能在一起工作的类可以在一起工作
3.适配器模式中的角色:
<1>目标接口(Target):客户所期待的接口。目标可以是具体的类或抽象的类也可以是接口(USB接口)
<2>需要适配的类(Adaptee):需要适配的类(PS/2键盘)
<3>适配器(Adpater):通过包装一个需要适配的对象,把原接口转换成目标接口(USB-PS/转接器)
4.工作场景:
经常用做旧系统的升级和改造
-java.io.InputStreamReader(InputStream)
-java.io.OutputStreamWriter(OutputStream)
5.示例代码:
<1>需要适配的类(Adaptee)
/**
*需要适配的类
*/
public class Adaptee {
public void request(){
System.out.println("可以打字的PS/2键盘");
}
}
<2>目标接口(Target)
/**
* 相当于USB接口
*/
public interface Target {
void handleRequest();
}
<3>适配器(Adapter)
“`
//适配器(相当于USB-PS/2转接器)
public class Adapter implements Target {
private Adaptee adaptee;
public Adapter(Adaptee adaptee) {
super();
this.adaptee = adaptee;
}
@Override
public void handleRequest() {
adaptee.request();
}
}
<4>客户端(Client)
//相当于只有USB接口的键盘
public class Client {
public void test(Target t){
t.handleRequest();
}
public static void main(String[] args) {
Client client=new Client();
Adaptee adaptee=new Adaptee();
Target target=new Adapter(adaptee);
client.test(target);
}
}