目录
Target.java
package com.bjsxt.adapter;
/**
* @author liyijie
* @date 2016年8月12日下午4:13:21
* @email 37024760@qq.com
* @remark
* @version
*/
public interface Target {
void handleReq();
}
Adaptee.java
package com.bjsxt.adapter;
/**
* @author liyijie
* @date 2016年8月12日下午4:08:31
* @email 37024760@qq.com
* @remark 被适配的类
* 相当于例子中的只有PS/2接口的键盘
* @version
*/
public class Adaptee {
public void request(){
System.out.println("可以完成客户请求的需要功能!");
}
}
Adapter.java
package com.bjsxt.adapter;
/**
* @author liyijie
* @date 2016年8月12日下午4:15:52
* @email 37024760@qq.com
* @remark 适配器(类适配器方式,使用继承的方式)
* 相当于把usb转成ps/2的转换器
* @version
*/
public class Adapter extends Adaptee implements Target{
@Override
public void handleReq() {
super.request();
}
}
Adapter2.java
package com.bjsxt.adapter;
/**
* @author liyijie
* @date 2016年8月12日下午4:15:52
* @email 37024760@qq.com
* @remark 适配器模式
* 适配器(对象适配器方式,使用了组合的方式跟被适配对象整合)
* 相当于把usb转成ps/2的转换器
* @version
*/
public class Adapter2 implements Target{
private Adaptee adaptee;
@Override
public void handleReq() {
adaptee.request();
}
public Adapter2(Adaptee adaptee) {
super();
this.adaptee = adaptee;
}
}
Client.java
package com.bjsxt.adapter;
/**
* @author liyijie
* @date 2016年8月12日下午4:11:58
* @email 37024760@qq.com
* @remark 客户端
* 相当于例子中的笔记本,只有USB接口
* @version
*/
public class Client {
public void test1(Target t){
t.handleReq();
}
public static void main(String[] args) {
Client c = new Client();
Adaptee a = new Adaptee();
//Target t = new Adapter();
Target t = new Adapter2(a);
c.test1(t);
}
}