考虑到(旧的)关于单例是否被过度使用/滥用/是否值得这样做的争论,将依赖项作为默认参数注入会不会是个坏主意?通过这种方式,我们可以避免为相应接口的依赖容器注册表定义单例--同时仍然保持该对象的可测试性--我们所需要做的就是在Unit测试此类类时显式地将模拟作为依赖项注入。Mock<Foo>(); SUT = new Foo(FooMock.Object);}
再考虑一下,如果我需要一个单例换句话说,将<em
我知道将IoC容器作为依赖项注入通常被认为是一件坏事,因为它基本上与Service反模式相同。然而,有一种情况,我认为这可能是有意义的,特别是因为我没有看到一个简单的方法绕过它。要从一个FooViewModel创建一个Foo实例,我有以下选择:
var vm =新的FooViewModel(foo) { Bar = _bar,Baz =在这个非常基本的场景中,这不是一个问题,但