java简单适配器的使用
2016-05-22 10:19
459 查看
Java与模式:适配器模式
目的:
将一个类的接口转换成客户希望的另外一个接口。A d a p t e r 模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
意图:
你想使用一个已经存在的类,而它的接口不符合你的需求。
你想创建一个可以复用的类,该类可以与其他不相关的类或不可预见的类(即那些接口可能不一定兼容的类)协同工作。
(仅适用于对象Adopter)你想使用一些已经存在的子类,但是不可能对每一个都进行子类化以匹配它们的接口。对象适配器可以适配它的父类接口。
(目的和意图是不变的,摘自《设计模式迷你手册》电子版)
简单的适配器模型
目的:
将一个类的接口转换成客户希望的另外一个接口。A d a p t e r 模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
意图:
你想使用一个已经存在的类,而它的接口不符合你的需求。
你想创建一个可以复用的类,该类可以与其他不相关的类或不可预见的类(即那些接口可能不一定兼容的类)协同工作。
(仅适用于对象Adopter)你想使用一些已经存在的子类,但是不可能对每一个都进行子类化以匹配它们的接口。对象适配器可以适配它的父类接口。
(目的和意图是不变的,摘自《设计模式迷你手册》电子版)
简单的适配器模型
<span style="font-family:FangSong_GB2312;font-size:18px;">/* 适配器模式:将一个类的接口转化成另外一个接口, 适配器模式使得原本由于接口不兼容而不能 一起工作的那些类可以一起工作。 **/ public class test_11 { public static void main(String[] args) { PowerA a = new PowerAImpl(); input(a); //用老方法input使用新接口 PowerB b = new PowerBlmpl(); //input(b);//不能这么用,因为input方法只能接收PowerA接口 //适配器的使用 PowerAadopter adopter = new PowerAadopter(b); input(adopter); } public static void input(PowerA a) { a.connect(); } } //接口适配器, 可以适配电源A的适配器 class PowerAadopter implements PowerA {// 说白了也就是继承A接口把A接口调换成B类,用A的方法调用B的方法 private PowerB b; public PowerAadopter(PowerB b) { this.b = b; } public void connect()//A的方法调用B的方法 { b.insert(); } } interface PowerB { public void insert(); } class PowerBlmpl implements PowerB { public void insert() { System.out.println("电源接口B开始工作"); } } interface PowerA { public void connect();//连接 } class PowerAImpl implements PowerA { public void connect() { System.out.println("电源接口A开始工作"); } }</span>
相关文章推荐
- Spring学习之第一个AOP程序
- java中内部类访问局部变量为什么要定义局部变量为final
- Eclipse: class file editor: source not found 问题解决办法
- Class.forName()用法 c26a 详解
- Java学习从菜鸟变大鸟之二 输入输出流(IO)
- 冒泡排序——java
- Spring Mvc那点事---(10)Spring Mvc之mybatis用法
- Java学习从菜鸟变大鸟之一 hashCode()和equals()的本质区别和联系
- Java部分流关闭时的源码操作
- MyEclipse2014 常用设置优化
- java 输入方法
- 搭建 Struts2 的环境:
- SpringMVC上下文父子容器
- java各种数据类型的转换问题
- Struts2的核心和工作原理
- Myeclipse生成项目toString
- Windows 安装JDK
- java ArrayList自动排序算法的实现
- Java注解二 自定义注解
- Timer 定时任务