2015-04-06 53 views
0

我正在創建一個多人遊戲,我需要編程一個服務器。現在我正在考慮用單例模式來設計它,因爲我只想要一個所有玩家連接的服務器實例。我對設計模式比較陌生,而且我看到很多使用單例模式的消極因素,所以我不確定它是否合適。使用Singleton創建服務器實例是否合適?

我會很感激任何反饋,並會盡快回復,如果你需要更多的信息在我的問題。

+0

一個Singleton被用來確保一個給定的類是在一個給定的JVM實例只能一次(給定的類加載器,其實)。您的客戶端不與服務器運行在同一個JVM中,因此服務器是否以單例實現不會改變任何內容:這不會阻止任何人在多個JVM或機器上啓動服務器的多個實例。 – 2015-04-06 11:27:35

+0

謝謝你的理解,我想我會問,而不是收費在設計它。 – 2015-04-06 11:33:59

+0

不要在Singleton上瘋狂,但是讓客戶端成爲Singleton是有道理的。因爲我只需要在每臺電腦上運行一個客戶端副本。 – 2015-04-06 15:23:35

回答

0

在我看來,單身模式違反了單一責任。這是真實的,因爲這個班會管理自己的創作和生命週期。

我更喜歡依賴注入器,它可以指定你注入的類是否是單例。

例如,這是ninject是怎麼做的https://github.com/ninject/ninject/wiki/Object-Scopes

kernel.Bind<MyClass>.To<MyClass>().InSingletonScope(); 
相關問題