- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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
您可能关注的文档
最近下载
- 2024-2025学年九年级化学上册 第一单元 单元测试卷(人教版).pdf VIP
- 中西文化比较 第2版 unit 3 The Chinese and Western Communication.ppt VIP
- 消化内科学(医学高级):消化内科学相关专业知识试卷.docx VIP
- “十四五”职业教育国家规划教材《数学 基础模块》上册 1.4.3集合的运算 补集(2021-08-23 13_33_39).pptx VIP
- 框图等效法书写浓度不同的混合溶液的质子守恒式.pdf VIP
- 建设工程风险查勘及过程管控标准.pdf VIP
- 中西文化比较 第2版 unit 2 The Chinese and Western Language.ppt VIP
- 大概念视域下的高中化学整体单元作业设计研究--以“化学平衡”为例.pdf
- 公园游乐设备采购游乐设备安装方案.doc VIP
- 深静脉血栓形成的诊断和治疗指南第三.ppt VIP
文档评论(0)