java 设计模式--适配器模式(实例快速理解)
来源:互联网 发布:js年月日时间轴 编辑:程序博客网 时间:2024/06/06 04:01
前言
适配器模式就是当需要的功能与要提供的功能之间接口不符合时,作为两者之间的适配,从而让两者可以无缝对接。例如现实生活中的电脑充电情况一样,如果有朋友出国旅游,在国外买了一台电脑,回到国内后突然想给电脑充电,发现外国的电压不是220V的,而是110V的(这里是假设的),怎么办呢?还好外国买的电脑配有充电转换器,可以将220V的电压转换成110V电压,好吧,电脑充电问题可以解决了。这其中的充电转换器就是适配器,它可以无缝连接220V电压,并将其转换为110V的电压。这就是适配器模式。
例子
一台需要充电的电脑
public class Computer {
/**
* 充电功能,需要100V的电压
*
* @param power100vInterface
*/
public void chargeComputer(Power110VInterface power110vInterface) {
System.out.println("电脑正在充电,电压是:" + power110vInterface.prove110Power());
}
}
也就是说那台电脑需要一个能提供110V电压的接口
public interface Power110VInterface {
public int prove110Power();
}
但是仅有的类只能提供220V的电压
public class Power220V {
/**
* 提供220V电压
* @return
*/
public int prove220Power() {
return 220;
}
}
没关系,以为我们有充电转换器(适配器)
public class Power110VAdapter implements Power110VInterface {
private Power220V power220v;
public Power110VAdapter(Power220V power220v) {
this.power220v = power220v;
}
@Override
public int prove110Power() {
return this.prove110VFrom220V();
}
/**
* 可以将220V电压转换为110V电压
*
* @return
*/
private int prove110VFrom220V() {
return this.power220v.prove220Power() / 2;
}
}
好了,没问题了电脑终于可以冲上点了
public class MainTest {
public static void main(String[] args) {
//一台电脑
Computer computer=new Computer();
//能提供220V的电压
Power220V power220v=new Power220V();
//适配器生成提供110V电压的接口
Power110VInterface power110vInterface=new Power110VAdapter(power220v);
//电脑充电了
computer.chargeComputer(power110vInterface);
}
}
结果:
电脑正在充电,电压是:110
适配器模式就是当需要的功能与要提供的功能之间接口不符合时,作为两者之间的适配,从而让两者可以无缝对接。例如现实生活中的电脑充电情况一样,如果有朋友出国旅游,在国外买了一台电脑,回到国内后突然想给电脑充电,发现外国的电压不是220V的,而是110V的(这里是假设的),怎么办呢?还好外国买的电脑配有充电转换器,可以将220V的电压转换成110V电压,好吧,电脑充电问题可以解决了。这其中的充电转换器就是适配器,它可以无缝连接220V电压,并将其转换为110V的电压。这就是适配器模式。
例子
一台需要充电的电脑
public class Computer {
/**
* 充电功能,需要100V的电压
*
* @param power100vInterface
*/
public void chargeComputer(Power110VInterface power110vInterface) {
System.out.println("电脑正在充电,电压是:" + power110vInterface.prove110Power());
}
}
也就是说那台电脑需要一个能提供110V电压的接口
public interface Power110VInterface {
public int prove110Power();
}
但是仅有的类只能提供220V的电压
public class Power220V {
/**
* 提供220V电压
* @return
*/
public int prove220Power() {
return 220;
}
}
没关系,以为我们有充电转换器(适配器)
public class Power110VAdapter implements Power110VInterface {
private Power220V power220v;
public Power110VAdapter(Power220V power220v) {
this.power220v = power220v;
}
@Override
public int prove110Power() {
return this.prove110VFrom220V();
}
/**
* 可以将220V电压转换为110V电压
*
* @return
*/
private int prove110VFrom220V() {
return this.power220v.prove220Power() / 2;
}
}
好了,没问题了电脑终于可以冲上点了
public class MainTest {
public static void main(String[] args) {
//一台电脑
Computer computer=new Computer();
//能提供220V的电压
Power220V power220v=new Power220V();
//适配器生成提供110V电压的接口
Power110VInterface power110vInterface=new Power110VAdapter(power220v);
//电脑充电了
computer.chargeComputer(power110vInterface);
}
}
结果:
电脑正在充电,电压是:110
0 0
- java 设计模式--适配器模式(实例快速理解)
- 设计模式----适配器模式 实例
- Java设计模式 - Adapter(适配器模式)
- java设计模式(简例)----适配器模式
- java设计模式(八) 适配器模式
- java设计模式(五)---适配器模式
- Java设计模式---适配器模式(Adapter)
- java设计模式(六)--适配器模式
- Java设计模式(六)----适配器模式
- Java设计模式(八) 适配器模式
- Java设计模式--适配器(Adapter)模式
- 设计模式之适配器模式(Java)
- Java设计模式(5)--适配器模式
- Java设计模式(适配器模式)
- JAVA设计模式-适配器模式(Adapter)
- Java设计模式(八) 适配器模式
- java设计模式--适配器模式(Adapter)
- Java 适配器设计模式
- ios开发本地化例子
- Halcon学习 ROI(感兴趣区域)
- UI中得类目 寻找自己最近的视图控制器
- IOS 笔记之 网络代理
- 中介者模式
- java 设计模式--适配器模式(实例快速理解)
- NAT穿透的详细讲解及分析
- 使用Xcode 6将你的项目本地化
- iPhone版本信息(iOS)
- VC++深入详解笔记(2)之菜单
- 如何优化cocos2d/x程序的内存使用和程序大小
- 计算机常用英语
- You don't have permission to access /phpmyadmin/ on this server.(wamp)
- Java基础--异常、包、Eclipse介绍