- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
使用服务定位器与单例相比有哪些优点和缺点?我读过单例不好,但我想知道 s 服务定位器是否通常是一种更好的做事方式。
最佳答案
这两种方法都不好,因为从类契约中看不出它的依赖项是什么。也就是说,
private void foo()
{
var x = SomeSingleton.Instance.GetX();
var y = ServiceLocator.GetService<IProvider>().GetY();
}
引用了 SomeSingleton
和 IProvider
深埋在里面的某个地方。
然而,与纯单例方法相比,服务定位器通常要好得多,因为它们允许更简单的集中配置、生命周期管理等。它们还允许更好的可测试性(你总是可以模拟调用 GetService<T>
),更低耦合、关注点分离等
关于c# - 单例与 ServiceLocator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1328263/
我们正在使用 ExtrasUtilities.bridgeServiceLocator() 通过将应用 ServiceLocator 桥接到 Jersey ServiceLocator,将在一个 Se
我是基于 MVVM 的单元测试应用程序,它使用 prism 并使用模拟来测试 View 模型。我可以通过传递区域管理器和资源管理器的模拟对象来调用我的 viewmodel 类的构造函数,但是当控制进入
使用服务定位器与单例相比有哪些优点和缺点?我读过单例不好,但我想知道 s 服务定位器是否通常是一种更好的做事方式。 最佳答案 这两种方法都不好,因为从类契约中看不出它的依赖项是什么。也就是说, pri
我正在尝试在应用程序构造函数(从 ResourceConfig 继承的东西)中初始化我的 Jersey 应用程序中的一些组件。看起来像这样 public Application(@Context Se
最近看了Mark Seemann's article关于服务定位器反模式。 作者指出了 ServiceLocator 是反模式的两个主要原因: API 使用问题 (我对此非常满意) 当类使用服务定位器
我正在尝试创建一个可重用的组件,该组件从居民文件中定义的服务创建一个ServiceLocator。我需要确定 ServiceLocator 是否还有内置服务之外的服务。如果没有,也许会向用户记录一些警
最近看了Mark Seemann's article关于服务定位器反模式。 作者指出了 ServiceLocator 是反模式的两个主要原因: API 使用问题 (我对此非常满意) 当类使用服务定位器
我正在尝试为单元测试设置服务定位器,如下所示: var mockS = new Mock(); ServiceLocator.SetLocatorProvider(() => mockS.Object
我愿意: 使所有需要它们的类都可以看到通常需要的服务, 使用最少的样板文件,并且 不牺牲可测试性! 这是一个小项目,我认为 DI 可能有点矫枉过正,但也许我错了?反正我一直关注ServiceLocat
我 99% 的依赖是通过 @Autowired Spring 注解使用 DI 模式管理的。 尽管如此,在特定场景中,直到运行时我才能确定要使用哪个实现。 最广为人知的情况,是解析器的多重实现。 第一种
我有一个多模块 GWT 项目,我想使用 ServiceLocators。我有 3 个模块: “客户端”依赖于共享 “共享” “服务器”依赖于共享 我这样写了ServiceLocator: public
我正在对使用统一依赖注入(inject)框架的类进行单元测试。 这将返回 null: ServiceLocator.Current.GetInstance(); 我怎样才能让它返回一个模拟对象或只是对
有人知道 Microsoft.Practices.ServiceLocation 来自哪里吗?这是 MS EnterpriseLibrary 中使用的命名空间和 dll。诚然,这是一个非常简单的 dl
这是我的 previous question 的后续问题. 我正在尝试为我的 ServiceLocator 类编写测试用例,但它给了我以下错误: com/iplanet/ias/admin/commo
我使用了 axis Web 服务客户端向导 + 开发客户端 slider 来生成文件: Mage_Api_Model_Server_HandlerBindingStub Mage_Api_Model_
开始学习后一直在思考一个问题Prism ...为什么我们需要使用 Service locator如果我们有 MEF以满足所有需要的导入。 Common Service Locator link for
我开始使用 Prism 和 MVVM 开发一个 WPF 项目,我正在尝试使用 eventAggregator,但是当执行下面的行时会引发异常: IServiceLocator ob = Service
在我的 App.xaml.cs 中有 private void InitializeContainer() { var catalogs = new AggregateCatalog();
我有一个 J2EE webapp,用于上传文件,然后由数据库过程处理该文件。因为我们不希望 webapp 必须等到数据库过程完成,所以它在不同的线程中执行。 运行在独立线程中的进程需要获取并关闭自己的
我正在使用带有 RequestFactory 的 GWT 2.2。该应用程序有一个现有的服务层(服务器端),所以我使用 ServiceLocator 来提供这些实现。 My Proxy 和 Reque
我是一名优秀的程序员,十分优秀!