gpt4 book ai didi

c# - 单例与 ServiceLocator

转载 作者:太空狗 更新时间:2023-10-29 21:15:47 26 4
gpt4 key购买 nike

使用服务定位器与单例相比有哪些优点和缺点?我读过单例不好,但我想知道 s 服务定位器是否通常是一种更好的做事方式。

最佳答案

这两种方法都不好,因为从类契约中看不出它的依赖项是什么。也就是说,

private void foo()
{
var x = SomeSingleton.Instance.GetX();
var y = ServiceLocator.GetService<IProvider>().GetY();
}

引用了 SomeSingletonIProvider深埋在里面的某个地方。

然而,与纯单例方法相比,服务定位器通常要好得多,因为它们允许更简单的集中配置、生命周期管理等。它们还允许更好的可测试性(你总是可以模拟调用 GetService<T> ),更低耦合、关注点分离等

关于c# - 单例与 ServiceLocator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1328263/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com