日期:2014-05-17  浏览次数:20635 次

一个属性根据另一个属性来操作,对象异步属性
Class A 中有属性C和D,当C为NULL时,不能对D进行读取或赋值。
当C不为NULL时,根据C的值来判断D的读取或赋值。

同时,外界调用方并不知道C和D有这样的关系,但是总会给C和D赋值,只是没有固定顺序。

不借助第三方类和对象,在A中实现这样的逻辑。





典型的属性副作用!
异步 属性 net

------解决方案--------------------
这种情况下就不应该暴露为可写属性。

应该提供一个方法,原子修改。
------解决方案--------------------
楼上说的很对,如果都实现为属性:
1.极有可能死循环!
2.改变对象状态而调用者不知
3.调用者无法调用依赖属性,直接报错。或者调用之前需要先为被依赖属性赋值。
4.丧失 了面向对象的思想。
------解决方案--------------------
你这种设计本身就是缺陷。有时候不是技术无法实现,而是设计带来困难。