作者ikai99 (18歲的天空)
看板MacDev
標題[閒聊] 使用singleton
時間Thu Nov 29 05:31:11 2018
這篇單純只是閒聊,因為前一陣子面試了某運動用品大廠。
對方問了我一個問題縈繞了我心中很久。 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://webptt.com/m.aspx?n=bbs/MacDev/M.1543440676.A.E3F.html
1F:→ cryinglove: 問題應該是 用了 Singleton 要怎樣測試 11/29 08:02
2F:推 fanatics5566: DI可以達到Singleton的效果又方便測試 11/29 21:23
3F:→ ikai99: 樓上,DI是什麼? 11/29 23:25
4F:推 uzoo: Dependency Injection吧 我猜的 11/30 15:36
5F:→ adrianshum: 覺得Singleton 很方便的人,用的Singleton 九成是不 12/01 13:41
6F:→ adrianshum: 必要的。個人還是秉持 Singleton is evil 的立場,盡 12/01 13:41
7F:→ adrianshum: 量少用。 12/01 13:41
8F:推 showshowman: 用delegate 12/02 18:18
9F:推 Blueshiva: why singleton is evil? 12/04 11:14
10F:→ yuanruo: 完了不能寫iOS了~Appdelegate本身就是一個singleton管理 12/04 19:21
11F:→ ikai99: 沒記錯的話Userdefault 也是啊 12/05 00:15
12F:→ Blueshiva: 濫用Singleton當然不好,不過就這個pattern本身來說, 12/05 12:55
13F:→ Blueshiva: 我覺得有好有壞 12/05 12:56
14F:推 Obama19: 我家的singleton很乖的 一定是被帶壞的 12/06 15:59
15F:→ cryinglove: 樓上的 Singleton 本來就壞壞 12/07 17:20
16F:→ adrianshum: Singleton 作為一個pattern 本身當然有適用的地方, 12/12 11:11
17F:→ adrianshum: 問題在於它太方便太容易被濫用了,加上濫用下,對程 12/12 11:11
18F:→ adrianshum: 式架構和可測試性的傷害可以很大,所以寧枉毋縱,除非 12/12 11:11
19F:→ adrianshum: 你確定這真是適用Singleton 的場合,否則不該輕易使 12/12 11:11
20F:→ adrianshum: 用。(所以我才說:說很方便的人通常都是濫用) 12/12 11:11
21F:→ Killercat: shared context是一個作法 或者學android限定service 12/30 10:27
22F:→ Killercat: access的做法也是一招 12/30 10:28
23F:→ Killercat: 就是context一直傳來傳去很煩而已.... 12/30 10:28