很多時候單身人士是一件壞事(例如參見here和here),我想避免它們。對於單身我沒有爲又一個替代性的一個典型應用情況是,當你有需要引用某種父/全局對象的多個對象。在頻繁參考的情況下替代單身人士
例子1:你有某種樹,每個樹葉對象必須知道根對象。 (這是不好的設計,但它只是一個例子)
例2:你通常喜歡global_config::get_instance()->get_item(name)
問題訪問的「全局」配置對象:針對給定的例子 - 有什麼替代方案概念單身從廣泛依賴通過開,並且每個實例儲存(又名Dependancy Injection
)?
保持簡單;使用單身人士。如果它確實適合你的情況,那麼使用它並不是一件壞事。避免過度使用它。 – andre
對於第一個示例,您可能在葉中有一個成員變量,它是對根的引用,並在構建或更新樹時進行設置。就個人而言,我沒有看到更好的替代例子2替換單例。 – Brahim