赞
踩
适配器模式包括3种形式:
/**
* 源(相当于两脚插头,也就是被适配的类)
* @author ningbeibei
*/
public class Adaptee {
public void adapteeMethod() {
System.out.println("两脚插头,被适配的类....");
}
}
/**
* 目标(客户所期待的类,可以是一个接口抽象类具体的类)
* 相当于三孔插板
* @author ningbeibei
*/
public interface Target {
void targetMethod();
}
/**
* 类适配器模式(相当于转换器)
* 通过Adapter类把Adaptee类与Target接口衔接起来
* @author ningbeibei
*/
public class Adapter extends Adaptee implements Target {
@Override
public void targetMethod() {
//操作处理
adapteeMethod();
//操作处理
}
}
/**
* 适配器模式测试类
* @author ningbeibei
*/
public class test {
public static void main(String[] args) {
//类适配器模式
Adapter adapter = new Adapter();
adapter.targetMethod();
}
}
/**
* 源(相当于两脚插头,也就是被适配的类)
* @author ningbeibei
*/
public class Adaptee {
public void adapteeMethod() {
System.out.println("两脚插头,被适配的类....");
}
}
/**
* 目标(客户所期待的类,可以是一个接口抽象类具体的类)
* 相当于三孔插板
* @author ningbeibei
*/
public interface Target {
void targetMethod();
}
/** * 对象适配器模式(相当于转换器) * 通过持有Adaptee属性建立与Target接口联系 * @author ningbeibei */ public class Adapter implements Target { //添加属性 private Adaptee adaptee; public Adapter (Adaptee adaptee) { this.adaptee = adaptee; } @Override public void targetMethod() { //操作处理 adaptee.adapteeMethod(); //操作处理 } }
/**
* 适配器模式测试类
* @author ningbeibei
*/
public class test {
public static void main(String[] args) {
//对象适配器模式
Adapter adapter = new Adapter(new Adaptee());
adapter.targetMethod();
}
}
/**
* 定义顶层接口
* @author ningbeibei
*/
public interface Target {
void targetMethod();
void targetMethod1();
void targetMethod2();
}
/** * 接口适配器模式 * 定义抽象类并实现Target接口 * @author ningbeibei */ public abstract class AbstrctAdapter implements Target { //默认实现方法 public void targetMethod() { System.out.println("默认实现"); }; //需要子类必须实现的方法 public abstract void targetMethod1(); //需要子类重写这个方法 public void targetMethod2() { System.out.println("默认实现2"); }; }
/**
* 通过继承AbstrctAdapter抽象类
* 实现它的抽象方法和重写方法
* 这种方式是通过抽象类缓冲接口中那些我们不想实现的空方法
* @author ningbeibei
*/
public class Adapter extends AbstrctAdapter {
@Override
public void targetMethod1() {
System.out.println("子类必须实现");
}
public void targetMethod2() {
System.out.println("重写实现2");
};
}
/**
* 缺省模式
* @author ningbeibei
*/
public class test {
public static void main(String[] args) {
Adapter adapter = new Adapter();
adapter.targetMethod();
adapter.targetMethod1();
adapter.targetMethod2();
}
}
通过上面结果输出我们可以得道以下几点:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。