ModelMaker_design中文.pdfVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ModelMaker_design中文

/ savenight savenight@163.com 原文是MM_designpatterns.pdf来自 http:\\www.modelmaker.demon.nl 本文版本:SN2002-9-28 本文献给Delphibbs上的大富翁们! 2002-9-28 模式(pattern)的重要性我就不再罗嗦了。本文基本上算是ModelMaker5的帮 助文件MM_designpatterns.pdf的中文翻译。说“基本上”是因为在某些地方我 增加或稍改了一些语句,以便从来都没有用过ModelMaker的人也可以通过本文 很轻松地做出所给的例子来,而不是还要去参考MM_usermanual620.pdf。 我的中文一向很烂,如果您觉得本文的文笔污染了您的视觉,尽管来信骂之 (我就是这样对待一些把好好的一本English读物翻译地很烂的家伙)。 欢迎来信交流,请您多多指正! 我用的环境是Delphi7ModelMaker6.2。ModelMaker6.2中支持的模式 与ModelMaker5一样多,共有 Mediator, Decorator, Reference Count, Lock八种。(以后我们把 ModelMaker6.2简称为MM )。基于下列原因,MM并没有把其它模式书中所提 到的所有模式都作进来。 一、因为有很多模式可以从另一种模式演变,例如Proxy模式和Decorator模式 的结构就一模一样。 二、用MM的功能去override一些methods,并且让这些overridden的 methods受制于(restricted)他们原来的methods,这样就可以很容易地实 现一些模式。 三、一些模式用MM很难实现。 四、还有一些模式与类库的关系非常紧密,所以用一种通用的工具来实现它显然 不和情理。 MM中所用到的模式都是参考文献 [Gam+] Addison Wesley, Erich gamma, Richard Helm, Ralph Johnson, John Vlissides,Design Patterns, Elements of Reusable Object-Oriented Software. 1995. ISBN 0-201 -63361-2. 来的,以后简称[Gam+] 。 本文中涉及模式的地方如果不懂,请参考上面提到的《Design Patterns,Elements of Reusable Object-Oriented Software》。 目前我也在研读此书,欢迎来信交流:) 下面就进入正题吧:) Wrapper pattern 来源: MM 中的Wrapper 模式是建立在[Gam+]中描述的Adapter 或Wrapper 模式上的。 意图: 一个Wrapper 把一个类的接口转化成用户期望的另一种接口。Wrappers 能够让原本因为 不相容而无法在一起工作的类现在可以一起工作。 动机: 在Delphi 的Object Pascal 语言中,多态性是建立在class 类型上而不是Delphi 支持的接 口上的。这就暗示了,虽然两个类可以支持同一个接口,但他们必须要拥有相同的祖先来满 足客户对象多态性转化的需求。有时候您需要一些现存的毫不相关的类一起工作。Wrapper 模式让您用一个类包装(wrap)另一个类的部分接口。这样就在Delphi 里通过“uses”关系模 拟了多继承。 比如现在有一个从TObject 派生的TSample 类,而您想把TSample 类加到Delphi 的组 件面板上。因为Delphi 规定只有从TComponent 继承的类(称为组件)才可以被加到组件面板 上,所以这里我们无法直接将TSample 类加到Delphi 的组件面板上。当然您可以说把TSample 的祖先换成TComponent,但是如果您没有源码呢?您可以创建一个从TCom

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档