大话设计模式——适配器模式
来源:互联网 发布:网络总攻是什么意思 编辑:程序博客网 时间:2024/06/05 07:44
前言
生活中有许多时候需要用到适配器,比如插座适配器,能将两孔的转为三孔的。
适配器就相当于是一个接口转换器,它可以将一个接口转换成需要的接口,极大的提高了效率。
实例
我们通过一个电脑充电的实例来给大家讲解一下。
现在我们有一台电脑(只支持三孔插座),一个二孔的插座,我们的电脑要没电了,代码也没保存,这时候我们要怎么办呢?对,我们需要一个插座的转换器。
首先,我们先写出三孔插座的接口
public interface ThreePlugIf { //使用三相电流供电 public void powerWithThree();}
然后,我们写出两孔插座的接口
public interface TowPlugIf { //使用两相电流供电 public void powerWithTow ();}
然后我们写出笔记本的类,笔记本有一个三孔插头,还有相应的充电方法。
public class NoteBook { private ThreePlugIf plug; public static void main(String[] args) { } public NoteBook(ThreePlugIf plug) { this.plug = plug; } public void charge() { plug.powerWithThree(); }}
对于两相插孔,有欧标,日标,国标等。由于我们是在国内充电,所以我们写出一个国标的插孔
public class GBTowPlug implements TowPlugIf{ @Override public void powerWithTow() { System.out.println("使用二相电流供电"); }}
有了插孔,但我们电脑的三孔插头并不能插进去,所以我们需要一个适配器来进行转换,将两孔的转换为电脑能用的三孔插座
public class TowPlugAdapter implements ThreePlugIf { private GBTowPlug plug; //需要一个二相插孔的参数 public TowPlugAdapter(GBTowPlug plug) { this.plug = plug; } //实现三相插孔的方法 @Override public void powerWithThree() { System.out.println("通过转换"); plug.powerWithTwo(); }}
最后我们在电脑类里,调用充电的方法
public class NoteBook { private ThreePlugIf plug; public static void main(String[] args) { GBTowPlug towPlug = new GBTowPlug(); ThreePlugIf plug = new TowPlugAdapter(towPlug); NoteBook nBook = new NoteBook(plug); nBook.charge(); } public NoteBook(ThreePlugIf plug) { this.plug = plug; } public void charge() { plug.powerWithThree(); }}
我们新建了个两孔插座,通过适配器将其转换为三孔插座,然后将电脑插头在这插座上,即可完成了充电。
通过转换使用二相电流供电
总结
适配器模式可以让两个没有任何关系的类一起运行,提高了类的复用度,增加了类的透明度,也十分灵活,在系统扩展等场景可以使用。
阅读全文
1 0
- 【大话设计模式】——适配器模式
- 大话设计模式——适配器模式
- 大话设计模式——适配器模式
- 大话设计模式—适配器模式
- 【读书笔记】大话设计模式—适配器模式
- 大话设计模式-适配器
- 读《大话设计模式》——适配器模式
- 大话设计模式-适配器模式
- 大话设计模式 适配器模式
- 大话设计模式-适配器模式
- 大话设计之适配器模式
- 大话设计模式_适配器模式
- 大话设计模式之适配器模式
- linkin大话设计模式--适配器模式
- 大话设计模式之适配器模式
- <<大话设计模式>>之适配器模式
- 大话设计模式17----适配器模式
- java设计模式大话之适配器模式
- Log4Net的入门使用
- js获取元素下所有子元素总宽度赋值给父元素
- 【深度学习】Batch Normalization
- apache和tomcat的区别
- Java中Synchronized的用法
- 大话设计模式——适配器模式
- sqlmap
- 微信红包的随机逻辑源码
- 关于差分约束的问题
- EL表达式 (详解)
- Java中基本数据类型和包装器类型的关系
- 数据库复习二
- ArrayBlockingQueue源码分析
- Java并发编程:阻塞队列