我正在考虑在我的项目中使用singleton模式,所以我搜索stackoverflow以找到一种pythonic方法来实现它。我发现this question的答案是“一个带有函数(而不是类)的模块可以很好地充当singleton”。另一方面,第二个答案建议使用the Borg pattern。对我来说,使用一个模块是一个简单而直接的解决方案,所以我想了解何时使用borg更可取。

最佳答案

在整个应用程序生命周期中,单例和模块仅代表一个实例。即使不需要这个实例,它也会保持实例化状态。
borg模式是关于共享状态的。每个客户机类都将创建一个borg的新实例,但是当不再需要这个实例时,它将被释放——这是一种更优雅的方法。
除此之外,对borg进行子类划分或模拟要容易得多。

09-04 00:18