我对服务定位器的设计模式有些困惑。
关于此模式,这似乎是一个非常非常基本的问题,但我无法弄清楚:如果我有多个实现某个IServiceX接口的类怎么办?定位器如何解决我要寻找的实例?
例如,我可以注册:
实现IServiceX的ServiceA实现IServiceX的ServiceB
似乎完全有可能,但我不确定。假设我有两种消息服务(相同的服务接口),并且想在运行时使用这两种实现。定位器如何在这些不同的实现方式之间进行选择?
那是有趣的部分。完全由您决定。
您可以遍历您的调用堆栈并弄清楚该调用来自何处,然后根据调用者的不同返回一个不同的实现。
您可能具有始终用于特定实现的Factory方法。
您可以根据一天中的某天,一周中的某天,可用的内存量等来返回实例。
这一切都取决于你!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句