Bu Singleton modeline benzemiyor. Anladığım gibi, önemli oyun nesnelerine referansları olan bir nesneyi tüm örneklerinize geçiriyorsunuz.
Bu Singleton kalıbı olsaydı, sahip olacaktınız:
AudioManager.getInstance().playSound(XY);
Halbuki sizin durumunuzda şunlar olabilir:
this.gateway.getAudioManager().playSound(XY);
Temelde aynı görünüyor, ama gerçekten değil. AudioManagerYeni bir (genişletilmiş sınıf) ile değiştirmek isterseniz ExtendedAudioManager, Singleton desenini kullanarak bir duvara çarpacaksınız. Ağ geçidi yaklaşımınız bunu iyi halledecektir.
Yaklaşımınızın dezavantajı, her yerden geçmeniz gatewaygerekmesidir. Hizmet bulucu desen (Joe Wreschnig önerdiği bu parçacığı), senin "ağ geçidi deseni" için iyi bir yerine koyma gibi görünüyor.
Bazen işleri aşırı tasarlamak yerine basit ve anlaşılır bir yöntemle çalıştırmak daha iyidir. Özellikle küçük bir proje veya bir prototip olduğunda. Belki bir gatewayçeşit küresel değişken yapabilirsiniz .. örn. Game.gatewayve onunla koş.