看单元测试的书,突然看到一个生词“委托”。去查了一下含义。得到两种“似乎”平行的解释。请教各位老师,哪种解释是对的?
第一种解释,给我的感觉就是大号快捷方式。就好比我每天启动电脑都要启动 qq ,excel ,word 三个软件。每天点三次很累。我把三个程序的快捷方式放到一个 A 文件夹里。每次双击 A 文件夹这三个程序一起启动。这个 A 文件夹就是一个委托。 依据来源: https://zhuanlan.zhihu.com/p/146341073
第二种解释就比较复杂了。以下是《设计模式--可复用面向对象的软件基础》原文: 委托(delegation) 是一种组合方法,它使组合具有与继承同样的复用能力[Lie86, JZ91] 。在委托方式下,有两个对象参与处理一个请求,接受请求的对象将操作委托给它的代 理者(delegate) 。这类似千子类将请求交给它的父类处理。使用继承时,被继承的操作总能 引用接受请求的对象,C++中通过 this 成员变扯,Smalltalk 中则通过 self 。委托方式为了得 到同样的效果,接受请求的对象将自己传给被委托者(代理者),使被委托的操作可以引用接 受请求的对象。
为什么说这两种解释是平行的。因为第一种比较简单,声明委托,定义委托(说明具体指向哪些方法或变量),使用委托。就行了。第二种怎么还有组合,继承啊,“两个对象参与处理一个请求”啊。难道没有父类子类,没有继承或组合关系。就无法使用委托? 所以以上两种解释,哪种正确?或者我的理解哪里有错,还请各位老师指正!
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.