天天看点

【转发】什么时候该用委托,为什么要用委托,委托有什么好处

好多人一直在问:什么时候该用委托,为什么要用委托,委托有什么好处....

看完下面的文章你将茅塞顿开..(看不懂的直接TDDTDS)

概念虽然我不喜欢讲太多

我们直接先来YY 个场景:我很喜欢打游戏,但运气不好每次打游戏都会被主管看到,朱老板不喜欢他的员工在上班的时

间打游戏,所以朱老板就跟主管说:以后员工在打游戏,你就扣他20块钱.

这其实就是一个委托,朱老板委托主管一旦发现员工打游戏,就做一件事情.

程序该怎么写呢?

至少有2个类吧,主管与员工,主管有个方法扣钱,员工有个方法玩游戏,那么开始动工了

 员工类:

主管类:

MIan方法大概这么写就行了:

运行,果然结果是对的,看来做为程序员我还是比较低调的..写出来结果很正常,也不沾沾自喜..

员工:开始玩游戏了..

员工:CS真好玩,哈哈哈! 我玩...

主管:上班时间胆敢玩游戏

主管:看看你小子有多少薪水:8000

主管:我开始扣薪水...

主管:扣好了.

主管:看看你小子薪水剩余:7980

下面我们简单的分析下这个程序:

1:在创建主管类之后才能创建员工类,耦合性太高,也就是说你要创建个员工,必须要先创建个主管..

2:如果场景发生以下变化,我要让经理代替主管,我们不得不修改员工类,并增加经理类.

这样看来这段程序设计的并不好,我们不妨来考虑下事件(特殊的委托)来实现

必须要定义一个委托,就是让主管监视员工,然后员工类里要有个事件(员工也是激发该事件的对象),主管执行事件

主管类就要实现一个方法,这个方法与委托的返回直一样,参数一样就行了,给委托来调用的.:

那么调用就变的简单了

输出:

2180

2160

总结:

      当然,不使用委托和事件我们仍然可以设计出解耦的类,然而却会增加很多的类、接口以及关联等等,增加了代码量和程序的逻辑复杂性,而在.net里利用委托和事件我们只需少的多的代码来实现。

学习交流群:364976091

继续阅读