快速业务通道

Java语言结构性模式之变压器模式介绍 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-22
配成”小狗, 让你的女朋友满意。(提示:量力而为。)

第2题、请指出第一题的解答所使用的是那一种形式的变压器模式。

第3题、笔者在许多场合给各种不同水准的专业人士作过各种编程模式的介绍,发现参加OOP开发工作的不同时间长短的人, 对不同的模式理解接受的速度有所不同。唯独在讲过这个男朋友与小狗小猫的例子后,大家对变压器模式的理解都很准确。 让笔者百思不得其解。你知道这是怎样回事吗?

第4题、请讲一讲使用实例形式的变压器模式和使用类形式的变压器模式在第一题的解决上有何影响。

问答题答案

第1题、根据提示,我们可以量力而为。因此,我们将把miao()“适配成”wao(),catchRat()“适配成”fetchBall(), run(),sleep()不变。源代码如下:

Java语言结构性模式之变压器模式介绍 - 编程入门网

图7. 男朋友小狗适配器的类图。

package com.javapatterns.adapter.kittie2doggie; public interface Doggie {   void wao();   void fetchBall();   void run();   void sleep();   void setName(String name);   String getName(); }

代码清单11. SwingUI类的源代码。红色的代码就是使用WindowAdapter的无名内部类。

package com.javapatterns.adapter.kittie2doggie; public class Kittie {   public void miao(){}   public void catchRat() {   }   public void run() {   }   public void sleep() {   }   public String getName(){ return name; }   public void setName(String name){ this.name = name; } }

Java语言结构性模式之变压器模式介绍(8)

时间:2010-12-17

代码清单12. SwingUI类的源代码。红色的代码就是使用WindowAdapter的无名内部类。

package com.javapatterns.adapter.kittie2doggie; public class Boyfriend extends Kittie implements Doggie {   public void wao()   {     this.miao();   }   public void fetchBall()   {     this.catchRat();   }   public void run()   {     super.run();   }   public void sleep()   {     super.sleep();   }   public String getName()   {     return super.getName();   }   public void setName(String name)   {    super.setName(name);   } }

代码清单13. SwingUI类的源代码。红色的代码就是使用WindowAdapter的无名内部类。

怎么,她不满意呀?那也有办法:把wao(),fatchBall()当作新的方法,在变压器类中实现。由于你扮演变压器角色, 当她调用wao(),fatchBall()方法是,你就叫一声,或把球捡回来就可以了。

你不满意呀?那就再去找一只真正的小狗吧。变压器模式的威力就到此为止了。

第2题、这里使用的是类形式的变压器模式。

第3题、我的一个学生告诉我,理解这个问题的关键,即男朋友必须装小狗。

第4题、使用类形式的结果是,她一旦想要另一个宠物,她就得换一个男朋友。 使用实例形式的变压器模式的结果是,她如果想要另一个宠物,原来的男朋友就得身兼几种身份。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号