package com.gof23.adapter1;
/**
* 网线
*/
public class Adaptee {
public void net(){
System.out.println("网线上网");
}
}
package com.gof23.adapter1;
/**
* 适配器接口
*/
public interface AdapterInf {
public void net2usb();
}
package com.gof23.adapter1;
/**
* 类适配器模式,继承被适配类的
*/
public class Adapter1 extends Adaptee implements AdapterInf {
@Override
public void net2usb(){
super.net();
}
}
3.2. 适配实现组合被适配的对象,称为对象适配器模式
package com.gof23.adapter1;
/**
* 对象适配器模式,将被适配的对象用组合的方式
*/
public class Adapter implements AdapterInf {
private Adaptee adaptee;
Adapter(Adaptee adaptee){
this.adaptee = adaptee;
}
@Override
public void net2usb(){
adaptee.net();
}
}
package com.gof23.adapter1;
/**
* 电脑
*/
public class Computer {
private AdapterInf adapterInf;
Computer(AdapterInf adapterInf){
this.adapterInf = adapterInf;
}
public void net(){
adapterInf.net2usb();
}
}
package com.gof23.adapter1;
/**
* 客户端测试
*/
public class Client {
public static void main(String[] args) {
Adaptee adaptee = new Adaptee();
AdapterInf adapter = new Adapter(adaptee);
Computer computer = new Computer(adapter);
computer.net();
}
}
原文:https://www.cnblogs.com/lwdesire/p/15350025.html