![]() |
1
2
您可以实现一个标志,以便只有您正在设置的属性触发另一个属性的设置。您设置了部分,它会更新部分和金额,但金额不会触发部分更新。
然后,您可以调用setter,而不必担心无限循环:
产生以下结果: 设置节数=5 第5节; 金额:15 设定金额=10 第3节; 金额:10 |
![]() |
2
1
创建两种方法来更新属性
这样,属性设置器就不会递归地相互调用 |
![]() |
3
1
与其有两个单独的值并试图保持它们之间的数据完整性,不如 只有一个存储值 并且让其中一个属性是一个完全计算的值。这不仅意味着没有递归需要解决,而且对象不可能有“无效”的状态。
|