服务定位器模式
概要
为某服务提供一个全局访问入口来避免使用者与该服务具体实现类耦合
游戏编程中,某些对象或者系统几乎出现在程序的每个角落。如音频,UI管理等。
直接引用对象肯定最差,用单例也不好,更合适的方案是引入服务定位器。
它使用起来像一个更灵活,更可配置的单例模式。
类结构
一个服务类为一系列操作定义了一个抽象的接口。
若干个具体服务提供器实现这个接口。
一个单独的服务定位器通过查找合适的提供器来提供这个服务的访问。
实现
jarjin/LuaFramework_UGUI的Facade就是用了服务定位器模式。
我在它的基础上结合《游戏编程模式》的服务定位模式设计了新的服务定位器,引入了空对象服务,让整个系统更易于使用。
Locator
// 服务定位器
publi