有一段时间最美翻译官占据了热搜

翻译,不仅仅是一项技术活儿。作为国际会议的翻译,这考验着一个人各方面的能力。

我这辈子是没有这机会为国家出一份力了。

不过写写文章,传播一下正能量,传播点儿知识的能力还是有的。

于是今天我们以翻译为例,讲一下:适配器设计模式。

一、他是啥

我们一般认为的适配器:适配器是一个接口转换器,它可以是一个独立的硬件接口设备,允许硬件或电子接口与其它硬件或电子接口相连。

适配器模式是:为对象提供一种完全不同的接口。你可以运用适配器(Adapter)来实现一个不同的类的常规接口。

比如:dbcOdbcDriverInputStreamReader 、耳机转接头、高清线转接口、翻译等都是适配器模式

二、他长啥样

我们的用户准备使用"适配者“的功能,但是由于某种原因不能使用,但是用户可以使用”适配器",因为适配器通过组合把适配者放到自己类内,调用适配器的方法执行任务时,其实适配器是调用的适配者的方法。

三、他怎么工作

我不会英语,我说汉语,让翻译给外国人翻译成英语。

SpeakEnglish

package adapter;/*** @author 木子的昼夜编程*/
public class SpeakEnglish {public void listen(String eng) {System.out.println("老外听到:"+eng);}
}

TranslateEng2Chinese

package adapter;/*** @author 木子的昼夜编程*/
public class TranslateEng2Chinese {SpeakEnglish adaptee;public TranslateEng2Chinese(SpeakEnglish adaptee) {this.adaptee = adaptee;}// 翻译public void listen(String eng) {System.out.println("翻译听到:"+eng);// 进行翻译String res = translate(eng);adaptee.listen(res);}// 翻译private String translate(String eng) {// 我这个翻译官比较傻 只会那么几个词儿if("你好".equals(eng)) {return "hello!";}if("过来".equals(eng)) {return "come here!";}if("滚".equals(eng)) {return " get away~";}if("欢迎".equals(eng)) {return "welcome!";}return "I don't know what he said !";}
}

Test

package adapter;/*** @author 木子的昼夜编程*/
public class Test {public static void main(String[] args) {SpeakEnglish speakEnglish = new SpeakEnglish();TranslateEng2Chinese trans = new TranslateEng2Chinese(speakEnglish);// 你好trans.listen("你好");// 欢迎trans.listen("欢迎");// 滚trans.listen("滚");// 吃了吗trans.listen("吃了吗");}
}

四、唠唠

很明显我这个例子是从外到内,不是传统的那种从内到外。

不过不管是什么方向,只要是把一个不能识别的功能翻译成可以识别的,那就是适配了。

看过我其他文章的人可能说了,这跟装饰模式、代理模式有很像呀!

那你应该还看过我说过的一句话:学习设计模式不要纠结于他属于哪一种设计模式,你是中国人,你也是个好人。

你非要纠结是是中国人还是好人吗?

等你把所有设计模式的精髓都学到之后,你就会发现心中无剑,手中有剑,你写出来的代码已经使用了很多种设计模式,但是你没有刻意去设计。

最美翻译官(适配器模式)相关推荐

  1. [Python设计模式] 第17章 程序中的翻译官——适配器模式

    github地址:https://github.com/cheesezh/python_design_patterns 适配器模式 适配器模式,将一个类的接口转换成客户希望的另外一个接口.Adapte ...

  2. 互联网快讯:华为正式上架“花瓣翻译官”APP;极米H3S高清巨幕获用户青睐;网易云音乐即将挂牌上市

    国内要闻 美的全面收购德国库卡,推进机器人业务中国本土化运营: 腾讯地图上线景区全景地图,带你身临其境看风景: 3.江苏沭阳规定每户限养一只小型犬,乘电梯犬只应戴嘴套或装笼: 4.华为正式上架&quo ...

  3. 550什么意思_研报翻译官第二期:带你了解什么是CPI

    欢迎收看"第二期"研报翻译官,临近年末,各类金融研报接踵而至,我们也常会看到GDP.CPI.PPI这类字眼. 过年回家跟亲戚朋友唠嗑的时候,如果不扯上几句CPI或PPI,都显自己得 ...

  4. JAVA翻译官_Java开发笔记(三)Java帝国的特种官吏

    上一篇文章介绍了Java工程的帝国区划,末尾给出了一段Java代码例子,这个代码虽然勉强能看懂,但是有些细节令人不甚了了.比如说"// 参观朱雀台"为何能够直接跟在当前行后面?&q ...

  5. DNS这位“翻译官”是如何转换域名和IP地址的?

    DNS这位"翻译官"是如何转换域名和IP地址的? Linux就该这么学 1周前 DNS( Domain Name System)是"域名系统"的英文缩写,是一种 ...

  6. 离线翻译android开发,有道翻译官推出Android版 可离线翻译多国语言

    日前,有道翻译官正式推出安卓版,凭借多国语言离线翻译和国内首创的多语种摄像头翻译等功能,为广大用户提供最便捷实用的翻译体验. 有道翻译官曾在iOS平台上大放异彩,上线当日,即取得了App Store ...

  7. Ardupilot 增加一个mavlink消息(翻译官网)

    目录 目录 摘要 第一: 翻译官网资料 增加一条新的mavlink消息(Adding a new MAVLink Message) 第二: Mavlink代码信息 (1)分析姿态包数据 (2)分析挂载 ...

  8. DNS服务器:小黑屋中的“翻译官”大神

    DNS服务器是一个外行听起来比较专业的词汇,大部分只是听说过DNS,却不知道DNS服务器是什么鬼:即便知道了DNS服务器是什么东西,却也很难明白DNS服务器背后的"翻译逻辑"是什么 ...

  9. 转自翻译官妈妈— 独一份的英国教师用书翻译手稿(自然拼读)

    这周全是没有任何水分的英语启蒙干货,每一篇都是五年经验总结,适合收藏起来慢慢看. 今天又是5000字的大干货文章,帮大家扫盲自然拼读,也手把手教大家用好自拼读物,非常有价值,大家一定要看完啊! 今天的 ...

最新文章

  1. MySQL开发医药管理系统_java Web开发医药后台管理系统mysql版本源代码下载,支持中英文...
  2. 服务器可视化_系统管理员不可错过的6款服务器监控工具
  3. 【转载】无需图片,使用CSS3实现圆角按钮
  4. 【自然框架】稳定版beta1——源码下载,Demo说明
  5. w10计算机运行特别卡,电脑卡是什么问题?导致Win10正式版卡顿的原因及解决方法...
  6. 在使用Asp.net制作网站的时候遇到的问题(二)
  7. 他拿着菜刀走进教室,把400个混混送进了一流大学
  8. url传递中文的解决方案总结
  9. python爬取京东商品价格教科书中文版_基于Python爬取京东双十一商品价格曲线
  10. 基于matlab的高等数学,基于MATLAB的高等数学问题求解
  11. 计算机文化基础心得体会1500字,《计算机文化基础教学改革与实践》工作总结报告.docx...
  12. 设计一个小型的物联网应用系统_点赞 | 面向能源物联网的智能传感芯片设计与应用...
  13. Axure中移动的绝对位置
  14. getrusage-进程资源统计函数
  15. 生活大爆炸第四季 那些精妙的台词翻译
  16. UNITY 5.2.1 发行说明 中文版
  17. 在TriCore架构芯片上移植 RT-Thread
  18. 大恒相机开发问题(错误码: -8)无法打开相机
  19. 常用查找法(C语言)
  20. VS2019配置libigl(吐血整理)

热门文章

  1. SAP UI5 应用开发教程之一百 - 如何修改 SAP UI5 框架的源代码实现,以及使用本地部署的 SAP UI5 SDK 试读版
  2. 仅用 1/4 数据量还原真人语音100%细节,火山语音上新超自然对话语音合成技术...
  3. ps如何将图片转化成线稿 简单版
  4. 创造者的品味 转自apple4.us
  5. java lr0分析,LR0分析器实验报告.doc
  6. 老鸟程序员才知道的一些事
  7. echart 重新加载
  8. Java swing简易浏览器(其二)前进后退与收藏夹实现
  9. win7系统安装telnet服务器,Win7怎样安装telnet服务?
  10. java对接天猫精灵语音助手实现对公司其下的智能设备进行控制(附上源码)