|
|
1
68
博格与众不同的真正原因在于子类化。 如果您将一个borg子类化,则子类的对象与其父类对象具有相同的状态,除非您显式重写该子类中的共享状态。singleton模式的每个子类都有自己的状态,因此将生成不同的对象。 在单例模式中,对象实际上是相同的,而不仅仅是状态(即使状态是唯一真正重要的东西)。 |
|
|
2
24
在python中,如果您想要一个可以从任何地方访问的唯一“对象”,只需创建一个类
唯一的
独生子女
博格
测验
输出:
在我看来,唯一的实现是最简单的,其次是Borg,最后是Singleton,它的定义需要两个函数。 |
|
|
3
14
事实并非如此。在python中,通常不推荐这样的模式:
使用类方法来获取实例,而不是构造函数。Python的元编程允许更好的方法,例如 Wikipedia :
|
|
|
4
8
类主要描述如何访问(读/写)对象的内部状态。 在单例模式中,您只能有一个类,即您的所有对象将为您提供对共享状态的相同访问点。 这意味着,如果必须提供扩展API,则需要编写一个包装器,包装单例
|
|
|
5
8
只有在少数情况下,当你真的有差异时,它才会更好。比如当你子类的时候。Borg模式是极不寻常的,我在十年的Python编程中从未真正需要过它。 |
|
|
6
2
此外,类Borg模式允许类的用户选择是共享状态还是创建单独的实例。(这是否是个好主意是另一个话题)
|
|
|
S qasem · Android内存性能 8 年前 |
|
|
R83nLK82 · 在单例设计模式上引发IOException 8 年前 |
|
|
hal · 两个课程有什么区别?他们的工作方式不同吗? 8 年前 |
|
Jaquarh · 如何在不使用DI的情况下实例化父类 8 年前 |
|
|
Deepanshu · 基于PHP的Web应用程序中的单例对象状态 8 年前 |
|
|
dicle · 视图控制器中的依赖项注入 8 年前 |
|
|
Kozuki · 如何在生产代码中考虑单例? 8 年前 |