适配器模式是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。主要分为类的适配器,对象的适配器,接口的适配器
1.类的适配器
public class Source {
public void show1(){
System.out.println("方法一");
}
}
public interface SourceInter {
public void show1();
public void show2();
}
public class SourceImpl extends Source implements SourceInter {
@Override
public void show2() {
System.out.println("方法二");
}
}
主函数测试
public class Main {
public static void main(String[] args) {
SourceImpl impl = new SourceImpl();
impl.show1();
impl.show2();
}
}
2.对象的适配器,绑定相应的对象,不再是对应着类
public class SourceImpl2 implements SourceInter {
private Source source;
public SourceImpl2 (Source source){
super();
this.source = source;
}
@Override
public void show1() {
source.show1();
}
@Override
public void show2() {
System.out.println("这是方法二");
}
}
实现接口,私有化变量source主函数测试:
public class Main {
public static void main(String[] args) {
Source source = new Source();
SourceImpl2 sourceImpl2 = new SourceImpl2(source);
sourceImpl2.show1();
sourceImpl2.show2();
}
}
3. 接口适配器
先定义接口,用抽象类实现,子类具体实现并继承抽象类
public abstract class SourceInterAbstract implements SourceInter{
@Override
public void show1() {}
@Override
public void show2() {}
}
public class AbstractTest1 extends SourceInterAbstract {
@Override
public void show1() {
System.out.println("这是接口方法一");
}
}
public class AbstractTest2 extends SourceInterAbstract {
@Override
public void show2() {
System.out.println("这是接口方法二");
}
}<span style="display: none; width: 0px; height: 0px;" id="transmark"></span>
主函数测试:
public class Main {
public static void main(String[] args) {
AbstractTest1 abstractTest1 =new AbstractTest1();
AbstractTest2 abstractTest2 = new AbstractTest2();
abstractTest1.show1();
abstractTest1.show2();
abstractTest2.show1();
abstractTest2.show2();
}
}