JAVA设计模式-适配器模式
来源:互联网 发布:apphtml源码 编辑:程序博客网 时间:2024/05/24 05:57
适配器模式
一、参与者
- 被适配的对象,就是源对象
- 适配后的对象,也就是目标对象
- 适配器
二、实现
- 定义一个目标接口,包含源对象的行为方法,以及需要适配的新的方法。
- 适配器类继承源对象,实现目标对象接口。
- 重写目标接口中新的行为方法,在方法内部实现新的行为。
三、效果
客户端通过实例化一个适配器,便可获得一个目标对象,这个目标对象既可以实现源对象的方法,也可以实现适配后新的方法
四、实例
现在已经有了一个可以画方形的类,现在客户端要通过这个画方形的类实现画圆的行为。
1.已有的画方形的类
public class Square{ public void drawSquare(int width){ System.out.println("drawSquare...width is : "+width); }}
2.目标接口,包含画圆的方法。注意要定义一个和源对象同样的接口方法。
public interface DrawBitmap{ public void drawSquare(int width); public void drawCircle(int radius);}
3.基于方形画圆形的适配器
/** * 继承Square类,实现DrawBitmap接口 */public class DrawCircleAdapter extends Square implements DrawBitmap{ /*重载DrawBitmap接口的drawCircle方法,此时画出来的是一个圆*/ @Override public void drawCircle(int radius){ System.out.println("drawCircle...radius is : "+radius); }}
4.最后来测试一下
public class AdapterClient{ public static void main(String[] args) { DrawBitmap draw=new DrawCircleAdapter(); draw.drawSquare(4); draw.drawCircle(2); }}
在终端执行:
javac AdapterClient.javajava AdapterClient
看一下运行结果:
drawSquare...width is : 4drawCircle...radius is : 2
可以看到经过DrawCircleAdapter适配器转换后的DrawBitmap对象,可以画出圆形了。
五、应用场景
- 业务的接口与工作的类不兼容,(比如:类中缺少实现接口的某些方法)但又需要两者一起工作
- 在现有接口和类的基础上为新的业务需求提供接口
实例源码:https://github.com/whisper92/wxpdesignpattern/tree/master/src/java/adapter/AdapterExample
THE END.
0 0
- Java 适配器设计模式
- 适配器(JAVA设计模式)
- java 适配器设计模式
- java设计模式 适配器
- Java适配器设计模式
- java适配器设计模式
- java设计模式-适配器
- java适配器设计模式
- java设计模式----适配器模式
- Java设计模式----适配器模式
- java设计模式适配器模式
- java设计模式--适配器模式
- java设计模式---适配器模式
- java设计模式---适配器模式
- JAVA 设计模式-适配器模式
- Java 设计模式 适配器模式
- Java设计模式-适配器模式
- java设计模式---适配器模式
- APUE读书笔记-第十二章 线程控制
- POJ 3237 Tree (树链剖分+线段树)
- Linux离线安装SVN并配置
- python 读写csv格式的文件
- 2016多校训练Contest7: 1008 Hearthstone hdu5816
- JAVA设计模式-适配器模式
- 【u204】高级砝码称重
- Java多线程三:Runnable接口
- RequestMapping的params参数
- vmware安装无法打开内核设备 \\.\Global\vmx86: 系统找不到指定的文件
- 关于Android中一些异常问题的解决办法
- QT Udp组播
- 各聚类算法比较
- 解剖学概述