博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
适配器模式
阅读量:6374 次
发布时间:2019-06-23

本文共 1458 字,大约阅读时间需要 4 分钟。

适配器模式其实很简单,或者说学了设计模式到现在,虽然每次看到各种名字的设计模式就觉得很高端,但当真正了解过后才知道其实也没有那么玄乎,有的东西在我们平时的时候都已经用到过了。比如这次我们要说的适配器模式,说白了,就是以前的代码接口,和我们客户端需要调用的接口不一致,但以前代码功能又是我们想要的功能。这个时候我们不必去修改以前代码的接口,我们只需要新增加一个类的,这个类符合客户端需要调用的接口,而在这个是适配类里调用我们以前代码的接口,这样就能做到不修改以前代码的接口,也不修改客户端就能实现接口匹配。

UML类结构同样很简单,代码就不难写出。

1 package day_26_adapter; 2  3 /** 4  * 客户端期待访问的目标接口,或者是类 5  * @author turbo 6  * 7  * 2016年9月26日 8  */ 9 public interface Target {10     void request();11 }
1 package day_26_adapter; 2  3 /** 4  * 需要适配的类 5  * @author turbo 6  * 7  * 2016年9月26日 8  */ 9 public class Adaptee {10     public void specificRequest(){11         System.out.println("这是最终要用到的方法,或者需要适配的方法");12     }13 }
1 package day_26_adapter; 2  3 /** 4  * 适配器,适配需要被适配的接口或类,以此提供接口给客户端 5  * @author turbo 6  * 7  * 2016年9月26日 8  */ 9 public class Adapter implements Target {10     private Adaptee adaptee = new Adaptee();11     12     /* (non-Javadoc)13      * @see day_26_adapter.Target#request()14      */15     @Override16     public void request() {17         adaptee.specificRequest();18     }19 20 }
1 package day_26_adapter; 2  3 /** 4  * 客户端 5  * @author turbo 6  * 7  * 2016年9月26日 8  */ 9 public class Client {10     public static void main(String[] args){11         Target target = new Adapter();12         target.request();13     }14 }

适配器模式,并不是什么很高端看不懂的模式,也很简单。我们最后利用《大化设计模式》中的例子画出UML图(不再写出代码),一家篮球俱乐部里有一名外籍篮球运动员,但是教练和外籍运动员语言不同,当然不能换教练更不能换运动员,这个时候就有一个翻译在其中,翻译者充当的就是适配类角色,我们用这实际的例子来看看UML类结构是怎样的,以此来加深我们对适配器模式的理解。

 

转载地址:http://ggjqa.baihongyu.com/

你可能感兴趣的文章
word2vec原理(三) 基于Negative Sampling的模型
查看>>
被《时代周刊》选为年度最佳发明,PS VR靠的竟然是价格
查看>>
通用唯一标识码UUID的介绍及使用。
查看>>
spring笔记--依赖注入之针对不同类型变量的几种注入方式
查看>>
Java爬虫——网易云热评爬取
查看>>
Ajax的简单学习
查看>>
机器人会消灭人类统治世界?你TM是在逗我么
查看>>
无华为,不智慧:智慧城市建设为何少不了华为?
查看>>
易到网约车许可证到手,终于能卖个好价钱了
查看>>
java是值传递还是引用传递
查看>>
阿里云推出“政务云” 助力政务机构推进互联网+
查看>>
高性能网络通信框架Netty-基础概念篇
查看>>
史上最严数据保护条例欧盟GDPR今日生效,你可能需要这版中文全文(上)
查看>>
2016中国“互联网+”创业创新大赛(华北+东北)赛区决赛成功举办 5支优胜团队晋级海口总决赛...
查看>>
BigMemory系列文章--5. Ehcache配置和统计数据
查看>>
「镁客·请讲」火柴全景VR徐晨翔:正值VR本命年,我们该做一些不一样的事情...
查看>>
区块链和“社会治理”之间千丝万缕的联系,听听工信部、信通院的大牛怎么说 | 数博会2018...
查看>>
hive在E-MapReduce集群的实践(一)hive异常排查入门
查看>>
PHP中获取当前页面的完整URL
查看>>
跟随机器人乐队Compressorhead,去享受一场另类的饕餮盛宴
查看>>