最近写点代码,被字段值的NULL和初始值问题,存储问题,以及通知变化搞得焦头烂额,本来觉得很简单的事,几天下来都没搞清楚。
现在主要谈谈我对事件的理解。
public event Action AsmChanged;
这就是一个事件,它存在于一个类A中,当A的某字段值变化时,就会触发该事件。
那么它的生命周期就从A=new A()开始和结束。
问题来了,A在不断变化,因为数据的重写,A在不断地new A(),那么要保证A.xx字段=yy时事件能够捕获,就还需要一个机制来保证每次A=new A()后,AsmChanged被重新实现,感觉这又加大了复杂性,我认为:这是事件的本质特性引发的复杂性,我称之为强通知事件。
后来,如何解决问题呢? 我想到了监视,本来事件也是有监视作用的,但是事件的监视是监视对象自己的操作,就像微博上的大V一样,事件机制意味着大V发现自己有变化后,点击某按钮(事件)来促使操作反应。
而弱关注事件则是用户的自行监视行为,与大V无关,所以我使用了Timer函数来解决这个问题.
时间: 2024-10-12 23:06:55