(我可能想多了一件非常简单的事情,但尽管如此。)
我有一个带有公共属性的 GUI 控件,其中包含它的当前值。可以通过多种方式从内部更改该值 - 控件非常复杂,并且具有不同行为的子级。在每一次这样的变化中,都必须播放一个声音并且应该触发一个事件。
另一方面,它可以通过逻辑元件从外部改变;在这种情况下,应更新所有 GUI 组件,但不应播放声音。
所以,本质上,我需要使用两个 setter:一个用于内部,一个用于外部。实现这一点的最佳方法是什么,以便代码可读并且未来的维护者不会意外地将两者混淆?(显然,当他们应该使用 public 时,他们将无法使用 private setter,但反过来可能会令人困惑)。
(我目前正在使用 C#,但我认为这个问题没有任何特定于语言的内容,所以我省略了标签。)