wpf应用程序中的静态对象

时间:2010-02-11 13:35:18

标签: wpf static

在我的wpf应用程序中,我使用了许多声明为静态的对象用于缓存目的。 只是想知道是否有任何缺点。

2 个答案:

答案 0 :(得分:0)

我几乎从不使用静态数据,因为在添加工作线程时会发生固有的问题。

如果您只想要对象可以访问的某个实例,那么Singleton模式可能会有所帮助。您可能想在Singletons in C#上阅读这篇有用的文章。

还有一个框架可以使请求服务变得非常简单。您可以设置框架,以便每次为您提供服务的新实例或相同的服务。问题是,我不记得它叫什么,如果其他人可以对此发表评论,我会非常感激,因为我想再次阅读它。我以为是Unity或Prism,但我不确定。我知道后一个框架是用于设置MVVM原则的应用程序。

答案 1 :(得分:0)

一个缺点是类上的静态成员没有完整的惰性实例化。静态构造函数将在第一次访问该类的任何成员时运行。这对您来说可能是也可能不是一个大问题。

在我看来,一个更大的问题是静力学不利于单元测试。假设您正在尝试为另一个类编写单元测试,这些类引用那些静态对象。您无法为这些对象设置模拟。你被迫使用真实的东西,最终可能会迫使你启动系统的大部分,在这种情况下,它不再是单元测试,而是集成测试。

我认为您不需要完全避免使用static关键字;通过这样做,只要注意你对程序的限制。使用Singleton并不是唯一的选择。您可以只选择遵循"just create one"政策。 :)