如果说到属性中过于“充血”的弊端,其实也很多例子。究其原因就是“功能抖动”的问题。
这往往跟不同框架也有关系。例如asp.net的机制是“一次次下载html”的机制,假设一个对象有10个属性,你是否会在任意一个属性被修改时立刻去重新DataBind整个页面呢?还是修改了所有属性之后仅仅在下载html之前的某个事件中才去执行一次页面DataBind呢?前者就可以在属性中调用DataBind,而后者就要把DataBind移出来,另外循着页面生命期的其它机关去部署这个DataBind语句。
显然,假设框架比较死(不能灵活地在客户端所见即所得),或者问了其它设计原因,你需要避免在属性中调用方法,而是在它应该被执行的时候才被执行。
------解决方案--------------------再举一个非常“喜欢”在属性中被调用的例子(实际上是触发事件,当然调用委托跟调用其它方法也差不多),就不多写了,看msdn:http://msdn.microsoft.com/zh-cn/library/system.componentmodel.inotifypropertychanged.aspx
------解决方案--------------------
+1