单例模式将一个对象实例化后,放在静态变量中,供程序调用。
服务定位(ServiceLocator)就是对象工场Factory,调用者对象直接调用Service Locator,与被调用对象减轻了依赖关系,这样如果被调用对象更换时,直接修改ServiceLocator的注册即可,不用修改程序中很多个地方的调用,从而减轻依赖关系。
我在学习单例模式的思路时,有一个疑问总是围绕着自己,单例模式就是静态变量呗,为什么要叫单例模式,有什么好处?静态类+静态方法不是很好?
当我学习了ServiceLocator后者明白,单例模式是一个对象放在静态变量中,这样可以减轻程序的耦合度,因为这个对象是很容易更换成另一个对象,而静态类直接调用就不行了。
哪么ServiceLocator如何实现呢,下面代码举例说明。
自己实现ServiceLocator
YII2框架中的ServiceLocator
总结
时间: 2024-10-25 16:42:04