【发布时间】:2011-09-21 07:47:19
【问题描述】:
我有一个有几个属性的类。某些属性可以由其他类更改,但某些属性依赖于其他属性。例如假设我的类有三个属性:A,B和C。A和B可以被系统中的其他类更改,C等于A + B。该类生成属性更改通知所以我想当A或B更改时,为更改的属性(A 或 B)生成一个通知,也为 C 生成一个通知。 我有三个选择(还有其他选择吗?)
1- 创建一个普通的 C 属性(带有支持字段)并在 A 和 B 的 setter 中添加代码以更改 C。
2- 创建一个普通的 C 属性并在我的类中监听我的类的属性更改通知,并在 A 或 B 更改时更改 C。
3- 为 C 创建一个计算属性,没有 setter 但 getter 是 A+B,在 A(和 B)的 setter 中,我为 A(或 B)和 C 触发属性更改。
哪个是更好的设计模式(在 C# 中)?我个人喜欢 2 号设计。
【问题讨论】:
标签: properties inotifypropertychanged