在实现服务定位器类型的模式时,我想知道这两种方法中的任何一种是否提供了相对于另一种方法的任何性能/逻辑改进。
我的想法是,一个gameObject
,称为#34; Game",将每个服务作为一个组件(音频,UI,AI)等包含在内。然后,每个组件将管理与之相关的任何子对象。该服务,并将它们作为主游戏gameObject
的子项生成,调用服务如:
AudioService audio = gameObject.GetComponent<AudioService>();
audio.playSound("bang.mp3");
另一种方法是将每个服务实例化为自己的gameObject
,并使用另一个gameObject
服务定位器作为静态参考点来定位相关服务:
AudioService audio = ServiceLocator.getAudio();
audio.playSound("bang.mp3");
Unity中更好或更惯用的方法是哪种?从技术或逻辑的角度来看,两者之间是否存在实质性差异?
谢谢!