适配器模式
1、概念:
- 将一个类的接口转换成客户希望的另外一个接口。Adapter 模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
2、类适配器(不推荐,单一继承)
3、对象适配器(推荐使用)
4、代码解释(网线–>适配器–>连接网络接口–>电脑)
-
package com.moshi.adapter; //网线 public class Adaptee { public void net(){ System.out.println("网络已连接"); } }
-
package com.moshi.adapter; //目标,连接网络 public interface NettoUSB { void toNet(); void toWifi(); }
-
package com.moshi.adapter; //类适配器,继承网线(自动接入网线),并实现连接网络目标 public class Adapter extends Adaptee implements NettoUSB { //实现连接网络目标 public void toNet() { super.net();//连接网络 } public void toWifi() { } }
-
package com.moshi.adapter; //对象适配器,关联网线,并实现连接网络目标 public class Adapter2 implements NettoUSB { private Adaptee adaptee; public Adapter2(Adaptee adaptee) { this.adaptee = adaptee;//主动接入网线 } //实现连接网络目标 public void toNet() { adaptee.net();//连接网络 } public void toWifi() { } }
-
package com.moshi.adapter; //电脑,即客户,使用适配器得到网络 public class Computer { public static void main(String[] args) { //类适配器模式 NettoUSB adapter = new Adapter(); adapter.toNet(); //对象适配器模式 Adaptee adaptee = new Adaptee(); NettoUSB adapter2 = new Adapter2(adaptee); adapter2.toNet(); } }
5、总结:
- 核心是继承和实现或关联和实现,前者是类适配器模式,后者是对象适配器模式。
- **继承和实现:**继承的是适配者,实现的是目标。
- **关联和实现:**关联的是适配者,实现的是目标。