|
|
1
37
抛开实现singleton模式是否是一个好主意的争论,下面是一个可能的实现:
然而,正如其他几个国家一样
noted
,这不是线程安全的,除非您只是在
另见,哈桑J的建议只是考虑一个包裹 作为 单身汉最后,要考虑其他人的建议:单例常常是一个有问题的实现的指示器。 |
|
2
11
在试图找到一种方法屈从于你的意志之前,你可能需要看一些文章: 总的来说,随着时间的推移,人们发现单胞胎比最优的要差,而且 尤其地 如果您试图进行任何测试驱动的开发:在许多层面上,它们和全局变量一样糟糕。 [免责声明:我知道这不是对您问题的严格回答,但它确实是相关的] |
|
|
3
9
只需将变量和函数放在包级别。 |
|
|
4
8
我认为,在一个并发的世界中,我们需要更清楚地认识到这些行不是原子地执行的:
我会按照@markermer的建议使用“同步”软件包。
|
|
|
5
5
最好的方法是:
你应该读这个 Link |
|
|
6
3
您可以使用 once package : 这将确保只调用一次init方法。 |
|
|
7
1
只需要一个静态的、最终的、常量的、全局的、应用程序范围的对象实例。 然而,这与OO范式相矛盾。它的使用应该局限于原语和不变的对象,而不是可变的对象。 |
|
|
8
0
你应该知道
从 https://golang.org/pkg/sync/#Once.Do
我使用互斥来确保全局配置变量的唯一初始化,以克服此限制: |