[闲聊] 使用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