adapter!

1.何谓适配器?

    变压器实际就是适配器。

    将一个接口转换成客户需要的接口。将一个接口中的功能扩展到另一个类中。(其中接口类不仅仅指那interface,这个是狭隘的);使接口类由于接口不兼容而不能一起工作的一起工作。

2.适配器分类

    多功能适配器:就是创建了一个Iworker 接口,并通过该接口连接到workHandler中找到合适的方法调用。

    单功能适配器:其则是通过一个Iwork接口,并通过该接口连接到合适的适配器,在通过适配器调用方法。

    这两个适配器中单功能适配器为重点。因为spring框架中就用的单功能适配器。

   缺省适配器设计模式
    当一个接口中具有大量抽象方法时,若一个类只需要使用其中的一小部分方法,其它方法并不需要访问,那么会出现一个问题:
需要定义的这个类(实现了该接口)必须要实现这个接口中的所有方法。而这些方法中由于大多数方法并不需要访问,所以采用空实现的方式来实现(只有一对大括号,没有真正的方法体内容)。这是比较麻烦的。此时可以定义一个一般性的类,让这个类空实现所有方法。当然,也可只空实现不使用的方法,让真正要使用的方法以抽象方法的形式出现。这样,以后再定义该接口的实现类,就不需要直接实现这个接口,而是继承这个一般性的类,重写所要真正访问的方法即可。
这种程序结构,称为缺省适配器设计模式。

3.什么是单功能适配器?

public class Test {
public static void main(String[] args) {
Icooker cooker = new Cooker();
Iprogramn programmer = new programer();
Iteacher teacher = new teacherimple();

Object[] workers = {cooker, programmer,teacher};

for (Object worker : workers) {
Iwork adapter = getAdapter(worker);
adapter.work(worker);
}

}


// 根据worker的具体类型查找与其相匹配的适配器
private static Iwork getAdapter(Object worker) {
Iwork ca = new cookerAdapter();
Iwork pa = new programerAdapter();
Iwork ta = new teacherAdapter();

Iwork[] adapters = {ca, pa, ta};

for (Iwork adapter : adapters) {
if(adapter.support(worker)) {
return adapter;
}
}
return null;
}

}

//以下是创建的一个cookerAdapter
public class cookerAdapter implements Iwork{

@Override
public void work(Object worker) {
System.out.println(((Icooker) worker).cooker());;
}


@Override
public boolean support(Object worker) {
return worker instanceof Icooker;
}
}


4.什么是多功能适配器?

    多功能适配器就是将多个接口多实现类的方法;

    然后由一个多能 功能适配器接口把这些接口到另一个接口 ,最终在测试里面去遍历;

5.多功能适配器代码展示

    



猜你喜欢

转载自blog.csdn.net/qq_40406929/article/details/79899388