用委托和事件来处理当然很方便,但是现在象这样的问题,都会用到设计模式(观察者模式)来处理。自然是从灵活度上来考虑。因为不懂设计模式,暂时就简单的复习一下Delegate and Event吧~
Delegate实际上一个class,所以可以在定义class的任何地方定义delegate;说其类型安全,自然跟其定义方式有关:定义了代理方法体的详细细节(返回类型,参数列表),这样在使用的时候就能在编译阶段发现error. 我们使用代理,是因为它默认有一个参数:方法体名称,也就是可以通过Delegate来把方法当作参数传递。
Event自不必多说,但有一点必须注意:所有的事件是通过代理来激活的。这也就是为什么Delegate和Event结合这么紧密的原因.实际上查看控件已经定义好的Delegate和Event,我们也可以看出其作用和用法:如,Button 的Click事件,查看相关定义,metadata,可以看到:
Demo:猫叫,老鼠跑,主人醒