来源:http://www.bjsxt.com/ 
一、【GOF23设计模式】_适配器模式、对象适配器、类适配器、开发中场景 

适配器模式 

笔记本电脑只有USB接口,新买的键盘是PS2接口的,需要用适配器转接一下 
client:笔记本 
adaptee:PS2键盘 
target:USB接口 
adapter:适配器 

 package com.test.adapter;
/**
* 适配器(类适配器方式)
* (相当于USB和PS/2的转接器)
*/
public class Adapter extends Adaptee implements Target{
@Override
public void handleReq() {
super.request();
}
} package com.test.adapter;
/**
* 适配器(对象适配器方式,使用了组合的方式跟被适配对象整合)
* (相当于USB和PS/2的转接器)
*/
public class Adapter2 implements Target{
private Adaptee adaptee; @Override
public void handleReq() {
adaptee.request();
} public Adapter2(Adaptee adaptee) {
super();
this.adaptee = adaptee;
}
}
 package com.test.adapter;
/**
* 客户所期待的接口
*/
public interface Target {
void handleReq();
}
 package com.test.adapter;
/**
* 被适配的类
* (相当于例子中的PS/2键盘)
*/
public class Adaptee {
public void request(){
System.out.println("可以完成客户需要的功能");
}
}
 package com.test.adapter;
/**
* 客户端类
* (相当于例子中的笔记本,只有USB接口)
*/
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);
}
}
控制台输出:
可以完成客户需要的功能

【GOF23设计模式】适配器模式的更多相关文章

  1. GOF23设计模式之适配器模式

    GOF23设计模式之适配器模式 结构型模式: 核心作用:是从程序的结构上实现松耦合,从而可以扩大整体的类结构,用来解决更大的问题. 分类:适配器模式.代理模式.桥接模式.装饰模式.组合模式.外观模式. ...

  2. 【GOF23设计模式】工厂模式

    来源:http://www.bjsxt.com/ 一.[GOF23设计模式]_简单工厂模式详解.面向对象设计原则.开闭原则.依赖反转原则.迪米特法则  没有工厂模式的情况 package com.te ...

  3. 【GOF23设计模式】单例模式

    来源:http://www.bjsxt.com/ 一.[GOF23设计模式]_单例模式.应用场景.饿汉式.懒汉式 1.GOF23设计模式  2.单例模式  3.饿汉式  1 package com.t ...

  4. 【GOF23设计模式】备忘录模式

    来源:http://www.bjsxt.com/ 一.[GOF23设计模式]_备忘录模式.多点备忘.事务操作.回滚数据底层架构 package com.test.memento; /** * 源发器类 ...

  5. 【GOF23设计模式】观察者模式

    来源:http://www.bjsxt.com/ 一.[GOF23设计模式]_观察者模式.广播机制.消息订阅.网络游戏对战原理 package com.test.observer; import ja ...

  6. 20. 星际争霸之php设计模式--适配器模式

    题记==============================================================================本php设计模式专辑来源于博客(jymo ...

  7. Java设计模式——适配器模式

    JAVA 设计模式 适配器模式 用途 适配器模式 (Adapter) 将一个类的接口转换成客户希望的另外一个接口. Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作. 适配器 ...

  8. 【GOF23设计模式】状态模式

    来源:http://www.bjsxt.com/ 一.[GOF23设计模式]_状态模式.UML状态图.酒店系统房间状态.线程对象状态切换 package com.test.state; public ...

  9. 【GOF23设计模式】模板方法模式

    来源:http://www.bjsxt.com/ 一.[GOF23设计模式]_模板方法模式.钩子函数.方法回调.好莱坞原则 package com.test.templateMethod; publi ...

随机推荐

  1. [原]如何在Android用FFmpeg+SDL2.0解码图像线程

    关于如何在Android上用FFmpeg+SDL2.0解码显示图像参考[原]如何在Android用FFmpeg+SDL2.0解码显示图像 ,关于如何在Android使用FFmpeg+SDL2.0解码声 ...

  2. SVN分支与合并

    分支的基本概念就正如它的名字,开发的一条线独立于另一条线,如果回顾历史,可以发现两条线分享共同的历史,一个分支总是从一个备份开始的,从那里开始,发展自己独有的历史(如下图所示) ⑴创建分支 假设目前我 ...

  3. 挑选分组中top1

    select * from( select *, ROW_NUMBER() over(partition by accountid order by opentime DESC) as rowNumf ...

  4. ASP.NET服务器控件使用之Reportviewer 报表

    http://blog.csdn.net/oemoon/article/details/7338967 http://www.cnblogs.com/emanlee/archive/2008/09/1 ...

  5. Session丢失的解决办法小结

    最近在做ASP.NET项目时,测试网站老是取不出Session中的值,在网上搜索了一下,找到一些解决方法,记录在这里.最后使用存储在StateServer中的办法解决了问题. SessionState ...

  6. 【PRML读书笔记-Chapter1-Introduction】1.6 Information Theory

    熵 给定一个离散变量,我们观察它的每一个取值所包含的信息量的大小,因此,我们用来表示信息量的大小,概率分布为.当p(x)=1时,说明这个事件一定会发生,因此,它带给我的信息为0.(因为一定会发生,毫无 ...

  7. 详解MemCached原理

    memcached是一个高性能的分布式内存缓存服务器,memcached在Linux上可以通过yum命令安装,这样方便很多,在生产环境下建议用Linux系统,memcached使用libevent这个 ...

  8. [前端]npm安装慢,换用淘宝的镜像

    镜像使用方法(三种办法任意一种都能解决问题,建议使用第三种,将配置写死,下次用的时候配置还在): 通过config命令 npm config set registry https://registry ...

  9. Android 学习笔记之ContentProvider实现数据共享....

    PS:最近听老师说打算让我参与企业的app制作,让我加快学习的进度...好吧,貌似下周还有考试...貌似实验室这个app也要做...暂时不管了...那就只能加快进度了,感觉略微的有点激动和紧张,总算是 ...

  10. ecshop的Mysql操作类

    摘要,这是直接摘抄的ecshop的mysql操作类:不过他这里的缓存是用的文件缓存,我们如果想直接使用,可以替换成memcache的或者redis的! <?php /** * ECSHOP MY ...