抛开书本谈 委托,为什么需要委托,它成就了什么?

简介: 博文技术有限,重在学习交流,有错误大家指正。思路:传统的方法调用------>委托的出现解决了什么问题---->委托的绑定方法----->总结 1.传统的方法调用View Code缺点:100个方法就要调用100次,如果每个人 对方法的需求不一样,就不能很好的处理了。

博文技术有限,重在学习交流,有错误大家指正。

思路:

传统的方法调用------>委托的出现解决了什么问题---->委托的绑定方法----->总结

 


1.传统的方法调用

View Code

缺点:100个方法就要调用100次,如果每个人 对方法的需求不一样,就不能很好的处理了。有人想展示跳舞,有人想唱歌,更有想一起展示。

2.引入 枚举试试看
 

View Code

缺点:枚举虽然可以解决根据枚举的项判断出 谁想展示什么才艺,但是扩展性不好。
思考:有没有一种方法,参数内带有:这个人的名字,然后自己想展示什么才艺,就自己带入?
比如:方法(名字,我的才艺)

 


3.这个时候单播委托出现了
根据 方法(名字,我的才艺),这个类型知道:
名字是 string 类型的,也就是string类
我的才艺 是 方法,但是参数必须是有类型的,所以这里我们可以推断出我们要设计 一个类CLASS,这个类就是所有方法的类型。
注:这里咱们轻易的看出了,委托起始就是定义 方法的类型。

View Code



输出:
Mr.w会跳舞
Jack会唱歌
Herry会跳舞
Herry会唱歌
哈哈,问题解决了,它没有利用switch语句,这样就可以根据不同的人,选择不同的才艺表演了。
有人可能以为这样和写传统的方法调用 有什么区别,你注意到没?你注意到没:每次增加才艺,都必须在PersonCY()方法内修改,这样使用委托带入,即使
我们增加了才艺的方法,也只需要在委托中带入即可。扩展性变优秀了。

注:上面还解决,一个人多个才艺的问题,但是做法不标准,一般我们是利用 多播委托来完成的。


4.多播委托

View Code

思考:看起来还是不简便,能否让 PersonCY()也省略,直接让委托调用方法,答案是可以的。
如下:

View Code


这样是不是 简便很多了?
注:这里有个多播委托的小细节,+=必须委托第二个方法的时候使用,第一委托必须是=,不然会出现未赋值的错误。
也可以使用-= 符号取消委托。


总结:博文技术有限,写的有错误大家指正,从 为什么需要委托,认识到了 委托其实就是一个 定义方法类型的类,到 简化代码实现了委托绑定了方法。

相关文章
|
19天前
|
Java 编译器 程序员
Java多态背后的秘密:动态绑定如何工作?
本文介绍了Java中多态的实现原理,通过动态绑定和虚拟方法表,使得父类引用可以调用子类的方法,增强了代码的灵活性和可维护性。文中通过具体示例详细解析了多态的工作机制。
29 4
|
6月前
|
Java C#
匿名类大揭秘:代码背后的奥秘
匿名类大揭秘:代码背后的奥秘
35 2
|
前端开发 JavaScript 程序员
程序员祝福圣诞快乐的方式(内涵完整代码)
程序员祝福圣诞快乐的方式(内涵完整代码)
180 0
|
前端开发
前端工作总结205-动态绑定
前端工作总结205-动态绑定
69 0
前端工作总结205-动态绑定
|
设计模式 安全 Go
不惧面试:委托
不惧面试:委托
123 0
不惧面试:委托
|
Java 数据库
后浪拍前浪-覆写父类方法 | 带你学《Java面向对象编程》之三十九
既然出现了继承的关系,那么就存在子类和父类的联系,而在子类之中有可能定义和父类完全相同的方法或属性的名称,这个时候就称为覆写。
后浪拍前浪-覆写父类方法   | 带你学《Java面向对象编程》之三十九
|
设计模式 Java
一起来看引用与现实的邂逅 | 带你学《Java面向对象编程》之二十二
本节通过三则分析为读者介绍了类关联结构、类自身关联等逻辑与合成设计模式的概念,带读者去理解类的灵活性。
一起来看引用与现实的邂逅    | 带你学《Java面向对象编程》之二十二
艾伟_转载:把委托说透(4):委托与设计模式
委托与很多设计模式都有着千丝万缕的联系,在前面的随笔中已经介绍了委托与策略模式的联系,本节主要来讨论委托与其他两个模式:观察者模式和模板方法模式。 委托与观察者模式 在.NET中,很多设计模式得到了广泛应用,如foreach关键字实现了迭代器模式。
1000 0
|
监控 C#
艾伟_转载:把委托说透(1):开始委托之旅 委托与接口
委托,本是一个非常基础的.NET概念,但前一阵子在园子里却引起轩然大波。先是Michael Tao的随笔让人们将委托的写法与茴香豆联系到了一起,接着老赵又用一系列文章分析委托写法的演变,并告诫“嘲笑孔乙己的朋友们,你们在一味鄙视“茴”的四种写法的同时,说不定也失去了一个了解中国传统文化的机会呢!”。
1002 0
|
.NET
艾伟_转载:把委托说透(2):深入理解委托
在上一篇随笔中我们通过示例逐步引入了委托,并比较了委托和接口。本文将重点剖析委托的实质。 委托在本质上仍然是一个类,我们用delegate关键字声明的所有委托都继承自System.MulticastDelegate。
1108 0