静态DataService类与IRepository <t>?</t>

时间:2010-05-10 18:29:00

标签: service interface static

我正在研究Sacha Barbers MVVM框架Chinch的代码,我在xxxViewModel.cs文件中看到了这个:

DataService.FetchAllOrders(CurrentCustomer.CustomerId.DataValue);

DataService是一个静态类。作为一名初级开发者,我只习惯于与数据服务接口。为什么那个类是静态的?

或者你认为他只是为了这个例子吗?

这是一个好方法吗?

1 个答案:

答案 0 :(得分:0)

公平地说,我不知道FetchAllOrders中发生了什么 - 它可能被编程为表现良好。

在实践经验中,我发现静态类很难用于维护进行数据访问所需的基础结构。我说“糟糕”,因为这些实现(我见过)不是线程安全的。当代码部署到多用户环境(例如Web应用程序)时,它就会爆炸。

  • 对不包含状态的类使用静态类(结果是线程安全的)。例如,只使用方法的类。
  • 对于要使用锁(线程安全)进行串行访问的类,请使用静态类。
  • 在抛弃代码中使用静态类,以避免构造/维护/传递实例的设计开销。

查看.net框架,看看微软制作哪些类是静态的,并思考为什么。