![]() |
1
15
你的方法确实不是推荐的。就我个人而言,我决不会允许我的团队采用这种方法。缺点:
创建存储库实例的最大原因是,如果需要,可以注入依赖项。对此最著名的论点是单元测试,这样您就可以模拟依赖关系,但我已经构建了许多存储库,它们的接口依赖关系会在生产代码中发生更改。 无论如何,您应该只是将存储库实例化作为基本服务类的一部分。没有理由它必须是“静态的” 或 实例调用无处不在”。在基类中应该有有限的实例实例化代码。 |
![]() |
2
10
我不知道你为什么如此坚决地反对使用实例。除了您现在拥有的代码不必要地复杂之外,使用静态类型还使得单元测试更加困难。静态类型类似于单例类型,您不能模拟/替换它。在我看来,您真正的问题可能是,“我如何终身管理我的服务层实例?”通常,通过每个Web请求有一个实例来实现这一点。在ASP.NET MVC应用程序中,可以 new up a DI container via a ControllerFactory, and handle all of this. [PDF] |
![]() |
3
1
您需要以一种深思熟虑的方式处理ObjectContext的范围,比如 Unit Of Work pattern 除此之外,我认为您应该重新考虑做所有静态的事情,正如Womp所说,您得到了非常高的耦合,并且使测试变得非常困难,并且您可以通过使用IOC容器在管理依赖关系图方面获得很多帮助。 我可以这么说,我以前做过那种事,把自己烧死了。) |
![]() |
4
-3
单件(和如前所述的静态类)是邪恶的,应该不惜一切代价避免,特别是在Web应用程序中。 |
|
Skretch · 在c中创建一组静态常量变量# 9 年前 |