我听说过使用静态类属性共享数据不是一个好习惯。虽然我没有看到任何人使用这种方法,但我无法找出这种appraoch的缺点! 为了更清楚,让我们考虑一个由许多UserControl组成的WPF应用程序,这些UserControl在某个流程中共享数据和参数;使用静态引用将使访问/共享这些数据变得容易,但似乎没有人喜欢这种方法,为什么?
我期待一个反模式相关的答案,我只是不确定它是什么。
答案 0 :(得分:1)
我认为这不一定是一种不好的做法,我认为它有可能被滥用。
在您的情况下,您需要在用户控件之间共享状态,它可能不是很好用,因为您希望屏幕上共享状态,而静态类及其属性在整个应用程序中共享。
但是,静态类在功能上是Singleton模式的.NET版本,在类似的情况下它很有用。
答案 1 :(得分:1)
如果仅涉及参数设置,请不要在应用程序的不同部分之间分享它们,而不是拥有相同数据的多个副本。它仍然坚持SOLID原则,因为该类的职责是持有参数/配置选项。
如果你还有数据,那就变得有点复杂了。对此没有一个单一的最佳答案。在一个地方拥有数据违反了SOLID原则,
注意单词"更难",但并非不可能。
积极的一面
在现代计算机体系结构中,计算比将数据从一个地方移动到另一个地方要便宜。因此,如果你有计算密集型应用程序,创建一次数据并从不同的地方访问它通常是一个更好的选择然后传递它。
如果你有多线程,计算密集型应用程序和按设计你的数据可以保证不会有任何提升条件,数据方面,它仍然是一个更好的选择,然后有多个副本。创建,复制/移动内存非常昂贵。
说出来。如果你只担心控件和UI的东西,我会建议 到