[閒聊] 使用singleton

看板MacDev作者 (18歲的天空)時間6年前 (2018/11/29 05:31), 編輯推噓5(5018)
留言23則, 10人參與, 6年前最新討論串1/1
這篇單純只是閒聊,因為前一陣子面試了某運動用品大廠。 對方問了我一個問題縈繞了我心中很久。 XD "How you think about Singleton?" Singleton pattern太好用了,常常拿來當gobal variable,我還真不知道少了 Singletion程式要怎麼寫。 單相對的也就造成維護上的困難,甚至一個singleton instance另外一個singleton? 如果我們不用Singleton,有沒有什麼替代方案? 用Cache? Database(sqlite)? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 172.72.192.209 ※ 文章網址: https://www.ptt.cc/bbs/MacDev/M.1543440676.A.E3F.html

11/29 08:02, 6年前 , 1F
問題應該是 用了 Singleton 要怎樣測試
11/29 08:02, 1F

11/29 21:23, 6年前 , 2F
DI可以達到Singleton的效果又方便測試
11/29 21:23, 2F

11/29 23:25, 6年前 , 3F
樓上,DI是什麼?
11/29 23:25, 3F

11/30 15:36, 6年前 , 4F
Dependency Injection吧 我猜的
11/30 15:36, 4F

12/01 13:41, 6年前 , 5F
覺得Singleton 很方便的人,用的Singleton 九成是不
12/01 13:41, 5F

12/01 13:41, 6年前 , 6F
必要的。個人還是秉持 Singleton is evil 的立場,盡
12/01 13:41, 6F

12/01 13:41, 6年前 , 7F
量少用。
12/01 13:41, 7F

12/02 18:18, 6年前 , 8F
用delegate
12/02 18:18, 8F

12/04 11:14, 6年前 , 9F
why singleton is evil?
12/04 11:14, 9F

12/04 19:21, 6年前 , 10F
完了不能寫iOS了~Appdelegate本身就是一個singleton管理
12/04 19:21, 10F

12/05 00:15, 6年前 , 11F
沒記錯的話Userdefault 也是啊
12/05 00:15, 11F

12/05 12:55, 6年前 , 12F
濫用Singleton當然不好,不過就這個pattern本身來說,
12/05 12:55, 12F

12/05 12:56, 6年前 , 13F
我覺得有好有壞
12/05 12:56, 13F

12/06 15:59, 6年前 , 14F
我家的singleton很乖的 一定是被帶壞的
12/06 15:59, 14F

12/07 17:20, 6年前 , 15F
樓上的 Singleton 本來就壞壞
12/07 17:20, 15F

12/12 11:11, 6年前 , 16F
Singleton 作為一個pattern 本身當然有適用的地方,
12/12 11:11, 16F

12/12 11:11, 6年前 , 17F
問題在於它太方便太容易被濫用了,加上濫用下,對程
12/12 11:11, 17F

12/12 11:11, 6年前 , 18F
式架構和可測試性的傷害可以很大,所以寧枉毋縱,除非
12/12 11:11, 18F

12/12 11:11, 6年前 , 19F
你確定這真是適用Singleton 的場合,否則不該輕易使
12/12 11:11, 19F

12/12 11:11, 6年前 , 20F
用。(所以我才說:說很方便的人通常都是濫用)
12/12 11:11, 20F

12/30 10:27, 6年前 , 21F
shared context是一個作法 或者學android限定service
12/30 10:27, 21F

12/30 10:28, 6年前 , 22F
access的做法也是一招
12/30 10:28, 22F

12/30 10:28, 6年前 , 23F
就是context一直傳來傳去很煩而已....
12/30 10:28, 23F
文章代碼(AID): #1R_maau_ (MacDev)
文章代碼(AID): #1R_maau_ (MacDev)