Event 事件

多播委托:任何一个委托都是 多播委托类型的子类,可以通过+= -= 给委托添加 或者减少实例方法,使得多播委托形成方法链,通过Invoke调用时 按顺序执行方法

1.事件的作用:对依赖太重的类型进行职责解耦

  • 依赖太重:例如,当前方法中依赖了多个类型,任何类型的修改都要去修改这个方法
  • 职责耦合:当前方法不仅需要维护自己的业务,还需要维护别的实例方法,任何调用方法的顺序修改 或者增加减少 都需要修改当前方法

   如何解决?:只让当前方法执行自己的逻辑 ,以及其他方法的调用 不管逻辑顺序,调用的其他方法可以当作一组方法组 顺序 增加都在组中完成 这个似乎就是 多播委托;

 

事件是一个带有Event关键字的特殊委托,它具有委托的性质 ,但是 他的Invoke 和 赋值 只能在事件声明类中操作,不允许在外边操作 即使是子类 也不能操作,主要靠编译器支持这些性质

他的作用:

 

2.事件和委托的区别和联系

  •     委托:
    1. 委托是一种类型 他继承自委托专属的类
  • 事件:
    1.     而事件是委托的一个实例,加上了Event的权限控制 

3.事件的理解

  1. 事件解决逻辑耦合的问题 
    • 把固定动作 和可变动作分离
    • 搭建框架时,可以通过事件去分离可变动作,支持扩展

 

posted @ 2023-01-03 13:38  三五八团楚云飞  阅读(19)  评论(0)    收藏  举报