CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  软件工程/管理 >  休闲广场

菜鸟提问,望各位大虾指点

楼主hy08(黄黄)2004-08-03 17:56:19 在 软件工程/管理 / 休闲广场 提问

请帮我分析以下程序段:   在一本软件工程方面的书上见的,   不明白  
  class     TimedDoor   :   public   door  
  {  
  public   :  
  virtual   void   DoorTimeout(int   timeOutId);  
  }  
  Class   DoorTimerAdapter   :   public   TimerClient    
  {  
  public   :    
  DoorTimerAdapter(TimerDoor&   theDoor):   itsTimedDoor(   theDoor)   //这里晕  
  {}  
  virtual   void   TimeOut   (int   timeOutId)  
  {   itsTimedDoor.DoorTimeOUt(timeOutId);}   //这里也晕  
   
  private   TimedDoor&   itsTimedDoor;  
   
   
  }  
   
   
  这段程序是关于对象接口分离的一个例子  
  问题点数:20、回复次数:3Top

1 楼cuike519(I will be back!)回复于 2004-08-07 16:57:41 得分 10

这个应该是一个使door定义的接口和TimerClient定义的接口可以协同工作的例子。应该是一种典型的对象适配器委托的例子,为了使TimerClient具有TimeDoor的特性使用了一个适配器,来适配TimerClient和TimeDoor之间的接口。该适配器的最终结果是将TimeOut方法的调用委托给了TimeDoor的方法DoorTimeout。  
  我是这样认为的。Top

2 楼mydelphiworld(太极圣僧)回复于 2004-08-19 21:09:05 得分 3

同意楼上的关点Top

3 楼redguardtoo()回复于 2004-08-19 22:14:32 得分 7

虚函数理解的话,这个问题很简单的。  
  建议从C的回调函数看起。例如C标准库中的qsort的接口。  
   
  就是有个timeddoor的对象,这个对象只有一个接口(接口在这里可以理解为可以运行时改变的函数指针),本来直接使用timeddoor就可以了。但是timeddoor的用户可能比较别扭,timedoor要被他使用还需要有一些提供额外的接口。  
   
  由于timedoor可能不能修改(例如只有二进制库,没有源代码),就在当中增加一个中介。  
  中介的方法用委托(就是例子中的代码),灵活性强一点(例如能够控制初始化时序)。继承也可以。Top

相关问题

  • 菜鸟提问,高手请指点~~~~~~~~~~
  • 菜鸟提问:链接时候报错,请大家指点。
  • 菜鸟提问,估计大家都会,指点一下
  • 菜鸟提问,请各位大侠指点一下。
  • 菜鸟提问:关于注册表。敬请各位大侠指点,谢谢!
  • ===***====菜鸟提问:三个表之间的运算.请指点.解决就给分==***===
  • 菜鸟提问!!!!!!!
  • 菜鸟提问。
  • !#!菜鸟提问:
  • 菜鸟提问!

关键词

  • 接口
  • timeddoor
  • timedoor
  • timerclient
  • doortimeout
  • itstimeddoor
  • timeoutid
  • 适配器
  • 例子
  • 对象

得分解答快速导航

  • 帖主:hy08
  • cuike519
  • mydelphiworld
  • redguardtoo

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo