【知了堂学习笔记】_Java中设计模式之适配器模式的学习
2018-02-02 11:04
609 查看
请关注“知了堂学习社区”,地址:http://www.zhiliaotang.com/portal.php
适配器模式
一、简介
适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。
这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。举个真实的例子,读卡器是作为内存卡和笔记本之间的适配器。您将内存卡插入读卡器,再将读卡器插入笔记本,这样就可以通过笔记本来读取内存卡。
我们通过下面的实例来演示适配器模式的使用。其中,音频播放器设备只能播放 mp3 文件,通过使用一个更高级的音频播放器来播放 vlc 和 mp4 文件。
二、基本信息
共有两类适配器模式:
对象适配器模式
– 在这种适配器模式中,适配器容纳一个它包裹的类的实例。在这种情况下,适配器调用被包裹对象的物理实体。
类适配器模式
– 这种适配器模式下,适配器继承自已实现的类(一般多重继承)。
这两张图片很好地解释了适配器模式:
三、实现方式
首先一部手机:Mobile.java
可以看出,手机依赖一个提供5V电压的接口:
然后我们拥有的是220V家用交流电:
下面我们需要一个适配器,完成220V转5V的作用:
最后测试,我们给手机充个电:
输出:
可以看出,我们使用一个适配器完成了把220V转化了5V然后提供给手机使用,且我们使用了组合(OO设计原则),原有的手机,以及200V电压类都不需要变化,且手机(客户端)和220V(被适配者)完全解耦。
转载出处:http://blog.csdn.net/lmj623565791/article/details/25833393
适配器模式
一、简介
适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。
这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。举个真实的例子,读卡器是作为内存卡和笔记本之间的适配器。您将内存卡插入读卡器,再将读卡器插入笔记本,这样就可以通过笔记本来读取内存卡。
我们通过下面的实例来演示适配器模式的使用。其中,音频播放器设备只能播放 mp3 文件,通过使用一个更高级的音频播放器来播放 vlc 和 mp4 文件。
二、基本信息
共有两类适配器模式:
对象适配器模式
– 在这种适配器模式中,适配器容纳一个它包裹的类的实例。在这种情况下,适配器调用被包裹对象的物理实体。
类适配器模式
– 这种适配器模式下,适配器继承自已实现的类(一般多重继承)。
这两张图片很好地解释了适配器模式:
三、实现方式
首先一部手机:Mobile.java
package adapter; public class Mobile { /** * 充电 * @param power */ public void inputPower(V5Power power) { int provideV5Power = power.provideV5Power(); System.out.println("手机(客户端):我需要5V电压充电,现在是-->" + provideV5Power + "V"); } }
可以看出,手机依赖一个提供5V电压的接口:
package adapter; /** * 提供5V电压的一个接口 * @author Lenovo * */ public interface V5Power { public int provideV5Power(); }
然后我们拥有的是220V家用交流电:
package adapter; /** * 家用220V交流电 * @author Lenovo * */ public class V220Power { /** * 提供220V电压 * @return */ public int provideV220Power() { System.out.println("我提供220V交流电压。"); return 220; } }
下面我们需要一个适配器,完成220V转5V的作用:
package adapter; /** * 适配器,把220V电压变成5V * @author Lenovo * */ public class V5PowerAdapter implements V5Power { /** * 组合的方式 */ private V220Power v220Power; public V5PowerAdapter(V220Power v220Power) { this.v220Power = v220Power; } @Override public int provideV5Power() { // TODO Auto-generated method stub int power = v220Power.provideV220Power(); //power经过各种操作--->5 System.out.println("适配器:我悄悄地适配了电压。"); return 5; } }
最后测试,我们给手机充个电:
package adapter; public class Test { public static void main(String[] args) { Mobile mobile = new Mobile(); V5Power v5Power = new V5PowerAdapter(new V220Power()); mobile.inputPower(v5Power); } }
输出:
我提供220V交流电压。 适配器:我悄悄地适配了电压。 手机(客户端):我需要5V电压充电,现在是-->5V
可以看出,我们使用一个适配器完成了把220V转化了5V然后提供给手机使用,且我们使用了组合(OO设计原则),原有的手机,以及200V电压类都不需要变化,且手机(客户端)和220V(被适配者)完全解耦。
转载出处:http://blog.csdn.net/lmj623565791/article/details/25833393
相关文章推荐
- 知了堂学习笔记--Java设计模式之适配器模式(转)
- java设计模式学习笔记-适配器模式
- java/android 设计模式学习笔记(6)---适配器模式
- 【知了堂学习笔记】_Java中设计模式之单例模式的学习
- 知了堂学习笔记--Java设计模式之单例模式
- 设计模式学习笔记--设计模式在Java I/O中的应用(装饰模式和适配器模式)
- java 设计模式学习笔记(13) - 适配器模式
- java学习笔记-设计模式7(适配器模式)
- java设计模式学习笔记--适配器模式
- [知了堂学习笔记]_设计模式之适配器模式
- 【知了堂学习笔记】_Java中设计模式之工厂模式的学习
- 设计模式学习笔记---适配器模式adapter(Java版)
- 【知了堂学习笔记】_Java中设计模式之观察者模式的学习
- java设计模式学习笔记5 适配器模式几种实现方式
- 【知了堂学习笔记】_Java中设计模式之代理模式的学习
- [知了堂学习笔记]设计模式之适配器模式
- 【知了堂学习笔记】_Java中设计模式之装饰者模式的学习
- java 设计模式 学习笔记(1) - 简单工厂模式
- java 设计模式 学习笔记(6) 代理模式
- java 设计模式 学习笔记(10) 外观模式