设计模式_13:适配器模式
来源:互联网 发布:linq去除重复数据 编辑:程序博客网 时间:2024/06/10 00:40
有4个角色:美国人、英国人、中国人、中译英的翻译官,让美、英、中三人分别说一句英语,假设中国人不会说英语(即没有实现说英语的接口),那么他就只能依靠翻译官来帮忙了:
public class Main { public static void main(String[] args) { IEnglish american = new American(); IEnglish englishman = new Englishman(); IEnglish transistor = new Transistor(new Chinese()); american.speakEnglish(); englishman.speakEnglish(); transistor.speakEnglish(); }}//目标接口targetinterface IEnglish { void speakEnglish();}//美国人class American implements IEnglish{ @Override public void speakEnglish() { System.out.println("American speak English"); }}//英国人class Englishman implements IEnglish{ @Override public void speakEnglish() { System.out.println("Englishman speak English"); }}//中国人(被适配者Adaptee)class Chinese { public void speak(){ System.out.println("Chinese speak English"); }}//翻译官(适配者Adapter)class Transistor implements IEnglish{ private Chinese chinese; public Transistor(Chinese chinese) { this.chinese = chinese; } @Override public void speakEnglish() { chinese.speak(); }}
运行结果:
American speak EnglishEnglishman speak EnglishChinese speak English
在这个例子中,中国人是被适配对象(adaptee),而翻译官是适配对象(adapter),他和外国人都实现了IEnglish接口,专门用来解决国人不会说英语的问题。
适配器模式主要是在一些类不允许或不容易修改时使用,比如方法名称不同、实现不同等情况,但这些最好是在软件开发初期就立即把他们改好,而不是优先套用适配器模式
阅读全文
1 0
- 设计模式_13:适配器模式
- 迪米特法则(设计模式_13)
- 设计模式:适配器模式
- 设计模式------适配器模式
- 设计模式:适配器模式
- 设计模式---适配器模式
- 设计模式 适配器模式
- 设计模式 - 适配器模式
- 设计模式--适配器模式
- 设计模式-适配器模式
- 设计模式------适配器模式
- 设计模式---适配器模式
- 设计模式- 适配器模式
- 设计模式 - 适配器模式
- 设计模式:适配器模式
- 适配器模式--设计模式
- 设计模式 - 适配器模式
- 设计模式-适配器模式
- List<Map<String,Object>> 不写limit在 Controller里面分页
- Oracle两张数据表之间某个指定字段的单向和双向同步
- RxJava简介与入门(一)
- Qt入门学习——Qt Creator 中 ui 文件和 Qt 代码关系
- 序?【算是序吧,怎么感觉跟写小说一样】
- 设计模式_13:适配器模式
- Java中Properties类的操作
- [USACO2011 DEC]牧草种植Grass Planting
- 数据表的创建与管理
- Linux第一章、第二章课后简答题
- validate验证+ajax
- Maven之自定义archetype生成项目骨架
- Dubbo学习笔记
- 【python系列】numpy中的tile函数