在阅读《think in java》的第177页遇到这个名称
适配器设计模式分为:
- 类适配器
- 对象适配器
- 接口适配器
类适配器和对象适配器
应用场景:在需要使用A类中的方法时又需要使用B类中的一些功能。
public class Shipeier extends ShiperAdapter{
public static final void main(String...args) {
//类适配
INormal in=new ShiperAdapter();
//对象适配
INormal in=new ShiperAdapter(new TypeC());
in.ITypeC_f();
}
}
/*
**类适配
*/
public class ShiperAdapter extends TypeC implements INormal{
@Override
public void INormal_f() {
ITypeC_f();
//System.out.println("INormal_f");
}
}
/*
**对象适配
*/
public class ShiperAdapter implements INormal{
private TypeC tc;
public ShiperAdapter (TypeC tc){
this.tc=tc;
}
@Override
public void INormal_f() {
tc.ITypeC_f();
//System.out.println("INormal_f");
}
}
public interface ITypeC {
public void ITypeC_f();
}
public class TypeC implements ITypeC{
@Override
public void ITypeC_f() {
System.out.println("ITypeC_f");
}
}
public interface INormal {
public void INormal_f();
}
ITypeC_f
接口适配器
应用场景:接口方法有很多不需要用到,若在类中全部实现导致代码复杂臃肿,用适配器类来实现所有接口方法,使其成为空方法,然后再用类继承该适配器,实现所需要的方法。
public class Shipeier extends ShixianClasser{
public static final void main(String...args) {
MoreIer m=new ShixianClasser();
m.f1();
}
}
public class ShixianClasser extends IAdapter{
@Override
public void f1() {
System.out.println("ShixianClasser_f1");
}
}
public interface MoreIer {
public void f1();
public void f2();
public void f3();
public void f4();
public void f5();
}
public class IAdapter implements MoreIer{
public void f1() {
}
public void f2() {
}
public void f3() {
}
public void f4() {
}
public void f5() {
}
}
ShixianClasser_f1