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
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 上古卷轴5闪退怎么办? 小米手机4卡顿怎么办 上古卷轴5任务失败怎么办 上古卷轴5爆显存怎么办 老滚5卡住了怎么办 上古卷轴5被木河镇人追杀怎么办 关门的时候有响怎么办 家里门关门太响怎么办 网上赌搏输了2万怎么办 梦见不顺心的事怎么办 振动声桥洗澡时怎么办 同校生2高潮了怎么办 经期血发黑量少怎么办 电脑键盘右边数字键不能用怎么办 御宅伴侣特别卡怎么办 电脑网络出现三角叹号怎么办 同校生2卡顿怎么办 电脑卡了没反应怎么办 促排卵泡多要怎么办 把朋友搞摔倒意外死亡怎么办 猫见到狗受惊了怎么办 头被桌子撞肿了怎么办 鱼缸里的鱼缺氧怎么办 上火眼皮打拉下来怎么办 小孩头敲了个包怎么办 四个月不吃奶怎么办啊 4个月宝宝不吃奶粉怎么办 3个月婴儿不喝奶怎么办 地图舌加裂纹舌怎么办 3个月宝宝厌食怎么办 宝宝不吃奶吃手怎么办 三个月的宝宝光吃手不吃奶怎么办 九个月宝宝积热怎么办 前门牙露神经了怎么办 7岁宝宝吐舌头怎么办 连续液精几个月了怎么办 接吻时对方伸舌头我要怎么办 亲嘴不想让对方伸舌头怎么办 喝醉酒想吐吐不出来怎么办 凉了胃怎么办喝什么药 生宝宝后屁股扁了怎么办