→ legnaleurc:很簡單, 不要用 singleton 05/10 19:21
→ legnaleurc:然後 A * const 是型別名稱 ... 你宣告時不就用這個嗎? 05/10 19:22
→ legnaleurc:在 C++ 用 singleton 只是自找麻煩 05/10 19:22
→ james732:是因為C++的多執行緒安全很麻煩嗎? 05/10 20:14
推 Ebergies:C++ 用 singleton 的麻煩之處在? 05/10 20:19
→ legnaleurc:當然多緒安全在 C++ 特別麻煩也是原因之一 05/10 21:51
→ legnaleurc:有趣的是目前我遇到大多數會大量使用 Singleton 的人 05/10 21:52
→ legnaleurc:原本都是寫 Java 的,他們的 getInstance 沒有任何mutex 05/10 21:53
→ legnaleurc:而且雖然他們同意 global varible 很噁心, 但仍然認為 05/10 21:53
→ legnaleurc:Singleton rocks 05/10 21:53
推 tomap41017:推樓上好文:) 05/10 22:08
推 Ebergies:老實說我不覺得這是一個問題。雖然我也曾經想過這類的問 05/10 23:05
→ Ebergies:題,但那僅止於優雅與否的範疇,多的是方法解決這東東 05/10 23:06
→ Ebergies:- 只要不排斥稍微髒一點的做法。 05/10 23:07
→ sudada:那個型別宣告真的是自己腦了XD 至於另外只是想問比較常用 05/10 23:26
→ sudada:的方法而已 05/10 23:27
推 yoco315:不要用singleton+1, 老實說, singleton 就是 global var 05/11 01:51
→ yoco315:令人驚訝的是很多人看到全域變數就想吐,但是覺得單件很好 05/11 01:52
→ yoco315:這真是很奇怪的現象,單件實際上的意義跟全域變數完全一樣 05/11 01:52
→ yoco315:我自己不使用singleton最大的原因是程式碼的 testability 05/11 01:53
→ yoco315:singleton 無法被 dependency injection mock 掉... 05/11 01:54
→ yoco315:對於 unit test 的撰寫是非常不便的,會導致程式碼的 05/11 01:55
→ yoco315:可測試性很低,在實質上也跟全域變數一樣會造成bug出現時 05/11 01:55
→ yoco315:不容易追蹤問題的來源.. 05/11 01:56
→ yoco315:另外 singleton 也違反 pure function 的設計理念 05/11 01:56
→ yoco315:對於編譯器的最佳化也會有負面影響,更別說還有多序跟平行 05/11 01:57
→ yoco315:處理的問題了 @@~ 05/11 01:57
推 Ebergies:Singleton 的確就是全域變數, 當時看到還想說 05/11 07:58
→ Ebergies:靠, 這個也算一個 pattern? 05/11 07:58