作者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/cn.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