[閒聊] 使用singleton

作者: ikai99 (18歲的天空)   2018-11-29 05:31:11
這篇單純只是閒聊,因為前一陣子面試了某運動用品大廠。
對方問了我一個問題縈繞了我心中很久。 XD
"How you think about Singleton?"
Singleton pattern太好用了,常常拿來當gobal variable,我還真不知道少了
Singletion程式要怎麼寫。
單相對的也就造成維護上的困難,甚至一個singleton instance另外一個singleton?
如果我們不用Singleton,有沒有什麼替代方案?
用Cache? Database(sqlite)?
作者: cryinglove (毓™)   2018-11-29 08:02:00
問題應該是 用了 Singleton 要怎樣測試
作者: fanatics5566 (★㊣↖狂熱a5566↘㊣☆)   2018-11-29 21:23:00
DI可以達到Singleton的效果又方便測試
作者: ikai99 (18歲的天空)   2018-11-29 23:25:00
樓上,DI是什麼?
作者: uzoo (油豬)   2018-11-30 15:36:00
Dependency Injection吧 我猜的
作者: adrianshum (Alien)   2018-12-01 13:41:00
覺得Singleton 很方便的人,用的Singleton 九成是不必要的。個人還是秉持 Singleton is evil 的立場,盡量少用。
作者: showshowman (show)   2018-12-02 18:18:00
用delegate
作者: Blueshiva (龍野南雲)   2018-12-04 11:14:00
why singleton is evil?
作者: yuanruo (罪を憎んで人を憎まず)   2018-12-04 19:21:00
完了不能寫iOS了~Appdelegate本身就是一個singleton管理
作者: ikai99 (18歲的天空)   2018-12-05 00:15:00
沒記錯的話Userdefault 也是啊
作者: Blueshiva (龍野南雲)   2018-12-05 12:55:00
濫用Singleton當然不好,不過就這個pattern本身來說,我覺得有好有壞
作者: Obama19 (^_^)   2018-12-06 15:59:00
我家的singleton很乖的 一定是被帶壞的
作者: cryinglove (毓™)   2018-12-07 17:20:00
樓上的 Singleton 本來就壞壞
作者: adrianshum (Alien)   2018-12-12 11:11:00
Singleton 作為一個pattern 本身當然有適用的地方,問題在於它太方便太容易被濫用了,加上濫用下,對程式架構和可測試性的傷害可以很大,所以寧枉毋縱,除非你確定這真是適用Singleton 的場合,否則不該輕易使用。(所以我才說:說很方便的人通常都是濫用)
作者: Killercat (殺人貓™)   2018-12-30 10:27:00
shared context是一個作法 或者學android限定serviceaccess的做法也是一招就是context一直傳來傳去很煩而已....

Links booklink

Contact Us: admin [ a t ] ucptt.com