- 20
- 0
- 约8.65千字
- 约 69页
- 2017-06-08 发布于湖北
- 举报
深入浅出设计模式之适配器模式
The Adapter Pattern(结构模式之适配器模式) 本章主要内容 现实生活中的适配器 面向对象的适配器 适配器的例子 适配器模式解析 适配器模式概念 对象适配器和类适配器 Java的迭代器 装饰者和适配器模式 现实生活中的适配器 电压适配 当把美国的电器拿回中国大陆去用的时候, 就面临电压不同的问题。美国的生活用电压是110伏,而中国的电压是220伏。怎么办? 如果要在中国大陆使用在美国使用的电器, 就必须有一个能把220伏电压转换成110伏电压的变压器。 现实生活中的适配器 请大家举例 鼠标的串口和usb口之间的转化 面向对象软件系统的适配问题 假设我们已经有一个软件系统,原来使用了一个第三方类库A。现在有一个新的第三方类库B,其功能等各方面都更加强大。我们希望用B来替换A,以改善我们的系统。但是B的接口与A不一样。那则么办呢? 办法之一 办法之一 办法之二 第二种方案的优点 办法之三 适配器的例子 简化的鸭子接口和类 public interface Duck { public void quack(); public void fly(); } MallardDuck类 public class MallardDuck implements Duck { public void quack() { System.out.println(嘎嘎嘎...); } public void fly() { System.out.println(我在飞哦!); } } 现在有一种新家伙 public interface Turkey { public void gobble(); public void fly(); } WildTurkey public class WildTurkey implements Turkey { public void gobble() { System.out.println(咕咕咕...); } public void fly() { System.out.println(我在飞,不过飞不远。); } } 我们原来有一个程序使用鸭子对象,现在想让它使用火鸡对象,但是火鸡与鸭子的接口不同,不能直接使用。 写一个火鸡适配器,让火鸡看起来像鸭子 火鸡适配器 public class TurkeyAdapter implements Duck { Turkey turkey; public TurkeyAdapter(Turkey turkey) { this.turkey = turkey; } public void quack() { turkey.gobble(); } public void fly() { for(int i=0; i 5; i++) { turkey.fly(); } } } 使用适配器 public class DuckTestDrive { public static void main(String[] args) { MallardDuck duck = new MallardDuck(); WildTurkey turkey = new WildTurkey(); Duck turkeyAdapter = new TurkeyAdapter(turkey); System.out.println(火鸡说...); turkey.gobble(); turkey.fly(); System.out.println(\n鸭子说...); testDuck(duck); System.out.println(\n火鸡适配器说...); testDuck(turkeyAdapter); } static void testDuck(Duck duck) { duck.quack(); duck.fly(); } } 适配器模式详解 适配器涉及的几个概念 客户(client):使用适配器的用户 目标接口(target inter):客户和适配器之间交互的接口 适配器(adapter):客户和源之间的中介 被适配者接口(adaptee inter):适配器和被适配者(源)之间的接口。 被适配者(源)adaptee: 试试看 现在,如果希望把鸭子包装成火鸡该怎么做? 写出你的代码DuckAdapter DuckAdapter参考答案 import java.util.Random; public class DuckAdapter implements Turkey { Duck duck; Random rand;
您可能关注的文档
- 淡水鱼图片.doc
- 液体疗法新 儿科补液课件.ppt
- 深井降水和轻型井点降水分析比较.doc
- 液压传动第五章-课件.ppt
- 深入学习高脂血症.ppt
- 深入浅出设计模式之策略模式.ppt
- 深入浅出设计模式之代理模式.ppt
- 淮北市东湖地块现状介绍.ppt
- 淮安中央新亚置业金陵名府营销策划二期提案报告.ppt
- 深加工结转专题培训.ppt
- (2026春新版)部编版八年级语文下册《第一单元》PPT课件.pptx
- 2018电力监控系统网络安全监测装置技术规范.docx
- 2022电力监控系统安全防护方案审核要点.docx
- 2014电力电缆光伏系统EN 50618欧标.docx
- (2026春新版)人教版二年级数学下册《第三单元 万以内数的认识》教案.docx
- (2026春新版)人教版二年级数学下册《第四单元 万以内的加法和减法》教案.docx
- (2026春新版)人教版二年级数学下册《综合与实践 时间在哪里》教案.docx
- (2026春新版)苏教版二年级数学下册《综合与实践 时间有多长》教案 .pdf
- (2026春新版)部编版三年级语文下册第3单元(教案).docx
- (2026春新版)部编版三年级语文下册第8单元(教案).docx
最近下载
- 医院体检报告改用简单.pdf VIP
- 人工气道气囊的管理专家共识(2024完整版).pptx VIP
- 2026年部编版新教材道德与法治小学三年级下册全册教案(含教学计划).docx
- 外研版(2025)高中英语必修选择性第一册单词表(全) .pdf VIP
- 上海新国际博览中心有限公司.PDF VIP
- 2026元旦主题班会:马年猜猜乐,猜成语 (共130题) 课件(共134张PPT).pptx VIP
- 锚定新坐标,聚力新征程——学校2026年工作思路(6大板块+28项核心举措).doc VIP
- 《爷爷的爷爷从哪里来》整本书阅读课件四年级下册语文(统编版).pptx VIP
- 山东省东营市广饶县2024-2025学年八年级(五四学制)下学期期末考试化学试卷(含答案).docx VIP
- 2025年事业单位招聘考试财会类综合知识试卷.docx VIP
原创力文档

文档评论(0)