設想一個例子:我們正在做一個規模很小、很簡單的2D動作遊戲。
假設遊戲會有一個英雄(Hero),攜帶著各種不同的武器(Weapon)。
我們現在要先實踐出可以讓玩家攻擊的功能,程式碼看起來可能像這樣
作者: デルタ
不要依賴Singleton Pattern
注意我說的是依賴,不是說完全不該用。
你對下面的情境很熟悉嗎?
現在你有一個Enemy類別,你希望它能夠知道玩家的位置,因此他需要擁有Player物件的transform。因為Enemy實體通常都是執行期產生的,所以你不會想用GameObject.Find(如果你還不知道,你現在該知道了),也不可能使用Serialized Field。 通常下一瞬間就是,「把Player變成singleton」。嗯...好吧!的確如果你的Player實體只會有一個,那麼使用singleton好像也是可以接受的。