Java学习笔记之适配器模式
来源:互联网 发布:地方财政收入来源 知乎 编辑:程序博客网 时间:2024/06/16 04:19
一、什么是适配器模式
顾名思义,适配器模式(Adapter Pattern)当然是用来适配的啦。当你想使用一个已有的类,但是这个类的接口跟你的又不一样,不能拿来直接用,这个时候你就需要一个适配器来帮你了。
二、适配器模式类图
三、 适配器模式示例代码
package Adapter;// 实现国标接口的充电方法public class CnPlugin implements CnPluginInterface { public void chargeWith2Pins() { System.out.println("charge with CnPlugin"); }} package Adapter;//国标接口public interface CnPluginInterface { void chargeWith2Pins();}package Adapter;// 实现英标接口的充电方法public class EnPlugin implements EnPluginInterface { public void chargeWith3Pins() { System.out.println("charge with EnPlugin"); }} package Adapter;//英标接口public interface EnPluginInterface { void chargeWith3Pins();} package Adapter;// 适配器public class PluginAdapter implements EnPluginInterface { private CnPluginInterface cnPlugin; public PluginAdapter(CnPluginInterface cnPlugin) { this.cnPlugin = cnPlugin; } // 这是重点,适配器实现了英标的接口,然后重载英标的充电方法为国标的方法 @Override public void chargeWith3Pins() { cnPlugin.chargeWith2Pins(); }} package Adapter;//在室内充电public class Home { private EnPluginInterface enPlugin; public Home() { } public Home(EnPluginInterface enPlugin) { this.enPlugin = enPlugin; } public void setPlugin(EnPluginInterface enPlugin) { this.enPlugin = enPlugin; } // 充电 public void charge() { enPlugin.chargeWith3Pins(); }}package Adapter;// 英标测试类public class Test { public static void main(String[] args) { EnPluginInterface enPlugin = new EnPlugin(); Home home = new Home(enPlugin); // 会输出 “charge with EnPlugin” home.charge(); }}
0 0
- Java学习笔记之适配器模式
- 设计模式学习笔记之适配器模式
- 设计模式学习笔记之适配器模式
- 设计模式学习笔记之适配器模式
- java设计模式学习笔记-适配器模式
- java设计模式学习笔记--适配器模式
- java设计模式学习之适配器模式
- java设计模式学习笔记---适配器
- java设计模式笔记之适配器
- 适配器模式--学习笔记
- 《Java与模式》学习笔记之四——适配器(Adapter)模式
- 《Java与模式》学习笔记之四——适配器(Adapter)模式
- 设计模式学习笔记(七)之适配器模式(Adapter)
- Java 之适配器模式
- java之适配器模式
- java 设计模式学习笔记(13) - 适配器模式
- java 设计模式学习笔记五Adapter适配器模式
- 设计模式学习笔记---适配器模式adapter(Java版)
- Javascript中的字符串连接
- Ipython快捷键大全
- nyoj 111分数加减法
- CentOS6.5安装JDK
- ROS_Kinetic_12 ROS程序基础Eclipse_C++(三)usb camera
- Java学习笔记之适配器模式
- java 中null的判断
- mysql中length字符长度函数使用方法
- Service实时向Activity传递数据案例
- There is no Action mapped for namespace [/] and action name [spropertyvalue] associated with context
- 关于tools:context=".MainActivity"的解释
- contextmenu用法-实现鼠标右键点击菜单功能
- centos7之lamp环境搭建
- Java学习笔记之工厂模式