GOF23设计模式之适配器模式的实现
来源:互联网 发布:windows me序列号 编辑:程序博客网 时间:2024/05/18 00:55
/** * 被适配的类:相当于本例子中的具有PS/2的键盘。可以满足客户的需求,但是计算机无法使用这个接口 * 时间:2015年4月3日20:35:25 * 也就是说,我们在这个类中定义的方法已经可以充分的完成客户所需要的目标, 因此也就没有必要重新再写一遍了。 * 因此我们需要通过某种途径,来使用这个方法 */package com.bjsxt.cn.adapter;
public class Adaptee { public void request() { System.out.println("我作为PL/2键盘,也能打字,能够满足客户的需求。"); }}
/** * 目标接口Target相当于例子中的USB接口 * 时间:2015年4月3日20:34:21 * 接口,用于被实现。 */package com.bjsxt.cn.adapter;
public interface Target { public void handleReq();}
/** * 相当于本例子中的适配器(转换器),把不被计算机识别的PS/2接口转换成可以识别的USB口 * 我们可以让它直接继承需要适配的类,这样它自身就成为了键盘,也实现了Target中的方法,成为了USB类的东西 * 这种方法叫做类适配器 */package com.bjsxt.cn.adapter;
public class Adapter extends Adaptee implements Target{
@Override public void handleReq() { super.request(); }
}
/** * 相当于转换器。适配器。 * 时间:2015年4月3日20:44:20 * 我们所想要实现的功能是想要通过该类的对象,达到调用了被适配器对象中的方法来满足客户的要求。 * 也就是说,我作为一个个体,需要访问的是另外一个个体的东西。当然,我们可以直接结成这个另外的个体, * 这样在我们内部也就存在了一份另外个体的东西。当然也可以有另外一种实现方式。那就是 * 让我内部有一个另外个体的引用(成员变量),通过这个引用,我们得以访问另外个体的东西。 * 这就是组合,相应的,这种适配器实现的方式叫做对象适配器。 */package com.bjsxt.cn.adapter;
public class Adapter2 implements Target { private Adaptee adaptee; public Adapter2(Adaptee adaptee) { this.adaptee = adaptee; }
@Override public void handleReq() { adaptee.request(); } }
/** * 相当于本例子中的计算机,只有USB接口。也就是说可以使用Target类型的东西。但是无法直接使用PS/2的键盘, * 尽管键盘的功能已经非常完备 * 时间:2015年4月3日20:37:27 * */package com.bjsxt.cn.adapter;
public class Client { public void test(Target t) { t.handleReq(); } public static void main(String[] args) { Client client = new Client(); Adaptee a = new Adaptee(); Target target = new Adapter(); client.test(target); }}/* * 我作为PL/2键盘,也能打字,能够满足客户的需求。 * * */
/* * 相当于本例中的计算机,只不过这个程序的适配器是通过组合模式的对象适配器实现的。 * * */package com.bjsxt.cn.adapter;
public class Client2 { public void test(Target t) { t.handleReq(); } public static void main(String[] args) { Client2 client2 = new Client2(); Adaptee a = new Adaptee(); Adapter2 a2 = new Adapter2(a); client2.test(a2); }}/* * 我作为PL/2键盘,也能打字,能够满足客户的需求。 * */
0 0
- GOF23设计模式之适配器模式的实现
- GOF23 设计模式之 适配器模式
- GOF23设计模式之工厂方法模式的实现
- GOF23设计模式之抽象工厂模式的实现
- GOF23设计模式之桥接模式的实现
- GOF23设计模式之享元模式的实现
- GOF23设计模式之中介者模式的实现
- GOF23设计模式之状态模式的理解与实现
- GOF23之适配器模式Demo
- 设计模式GOF23——适配器模式
- GOF23设计模式之简单工厂的实现
- 设计模式之GOF23的Observer
- GOF23设计模式之原型模式之实现
- GOF23设计模式之静态代理模式实现之经典
- GOF23设计模式之动态代理模式实现之经典
- GOF23设计模式之组合模式之实现
- GOF23设计模式之装饰模式之实现
- GOF23设计模式之外观模式之实现
- 简单工厂模式
- java中解决了一个逻辑上的错误
- 2.30
- bootstrap的web前端模板
- mac下java 开发环境搭建
- GOF23设计模式之适配器模式的实现
- jQuery Validate验证框架详解
- volocity脚本语法
- Blocks
- JS前台加密,java后台解密实现
- 获取文件CRC和MD5
- memset函数初始化数组简单解释,忽略复杂的原理~~~
- JAVA总结的实用小常识
- PAT (Basic Level) Practise (中文)