出现目的:
1、委托的出现,是为了提高编程的灵活性,降低类的耦合性
不足:因为声明委托的目的就是为了把它暴露在类的客户端进行方法的注册,把它声明为private了,客户端对它根本就不可 见,那它还有什么用?声明为 public 结果就是在客户端可以对它进行随意的赋值等操作,严重破坏对象的封装性。
2、事件的出现,是为了弥补委托的权限漏洞
在类的内部(监听者),不管你声明它是public还是protected,它总是private的。在类的外部(监听对象),注册“+=”和注销“-=”的访问限定符与你在声明事件时使用的访问符相同。
实现目的的方式:
事件可以看做是封装了的委托,是一种特殊的委托。
加了event关键词修饰的委托称为事件
此委托对内引用是private权限
对外引用是看声明的权限。
委托是以方法为参数的
可以做为字段来用
声明一个委托字段后,同时可以声明一个对外的同类型委托属性,供外部操作
把此方式应用到事件上就是
可以声明一个事件字段
再声明一个操作此事件字段的事件属性
在外部注册事件后,事件本身内部将调用执行注册的方法,
就相当于是把外部方法注入进事件本身类内部,重新组织类的运行一样。
因为类本身已经封装,而事件的注册方法可以任一调换符合条件的方法
注册后事件本身类将从内部执行不同的方法,同样也提高了程序的灵活性,降低类的耦合性。