您的位置:首页 > 编程语言 > Java开发

Java设计模式之适配器设计模式

2018-03-28 21:33 218 查看
在阅读《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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息