适配鸭子的火鸡(续).ppt

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
适配鸭子的火鸡(续)

结构型模式: 适配器模式和外观模式 * 适配器 面向对象适配器 适配鸭子的火鸡 public interface Duck { public void quack(); public void fly(); } public class MallardDuck implements Duck { public void quack() { System.out.println(Quack); } public void fly() { System.out.println(Im flying); } } 鸭子接口,具备呱呱叫和飞行能力。 绿头鸭是鸭子的子类。 适配鸭子的火鸡(续) public interface Turkey { public void gobble(); public void fly(); } public class WildTurkey implements Turkey { public void gobble() { System.out.println(Gobble gobble); } public void fly() { System.out.println(Im flying a short distance); } } 火鸡不会呱呱叫,只会咯咯叫。火鸡也会飞,虽然飞不远。 火鸡的一个具体实现。 火鸡适配器 假定缺鸭子对象,用火鸡对象来冒充,需要为火鸡对 象写一个适配器。 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(); } } } 火鸡飞行距离短,连续5次调用火鸡的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(The Turkey says...); turkey.gobble(); turkey.fly(); System.out.println(\nThe Duck says...); testDuck(duck); System.out.println(\nThe TurkeyAdapter says...); testDuck(turkeyAdapter); } static void testDuck(Duck duck) { duck.quack(); duck.fly(); } } 火鸡包装进火鸡适配器中,使它看起来象一只鸭子。 测试火鸡。 测试鸭子。 测试适配器:传入一个假装鸭子的火鸡。 测试结果 火鸡咯咯叫,且飞行距离短。 鸭子呱呱叫,并能飞行。 Quack()被调用时,适配器咯咯叫;fly()被调用时,适配器飞行了5次。testDuck()方法根本不知道,这其实是一只假装成鸭子的火鸡。 适配器模式分析 客户使用适配器过程 ① 客户通过目标接口调用适配器的方法对适配器发出请求。 ② 适配器使用被适配者接口把请求转换成被适配者的一 个或多个调用接口。 ③ 客户收到调用结果,但并未察觉这一切是适配器在起 转换作用。 客户和被适配者是解耦的。 适配器模式定义 类图 适 配 器 模 式 将 一 个 类 的 接 口 转 换 成 客 户 期 望 的 另 一 个 接 口 。 适 配 器 让 原 本 不 兼 容 的 类 可 以 合 作 无 间 。 对象和类适配器 有两种适配器:对象适配器和类适配器。前一页是对象适配器类图,类适配器类图如下: 对象适配器可适配某个类及其子类。但是,需要实现被适配者,多一个对象,效率低点。 家庭影院 爆米花机 放大器 调谐器 观赏电影 ⑴ 打开爆米花机 ⑵ 开始爆米花 ⑶ 灯光调暗 ⑷ 放下屏幕 ⑸ 打开投

文档评论(0)

youbika + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档