python - 将类的实例存储在类变量中是一个好的模式

标签 python class oop

我在 Python 中经常使用的一种设计模式是这样的:

class Foo:
    foos = []
    def __init__(self, argument):
        initialize_instance()
        foos.append(self)

这有名字吗?它是否被认为是有用的模式?

最佳答案

我真的不认为这在 OOP 中是一个好的实践(我不是 Python 专家)。使用静态(如列表 foos)几乎总是一个糟糕的概念。正如评论中所说,更好的解决方案是设置一个服务类(查看 OOP 中的 SOA 模式)来索引所有 Foo 实例并进一步检索它们。

但是,不要认为这是注册表模式的变体。这是这种模式的反模式,它阻止了类之间正确的低耦合。当然,Python 并不是执行强大的 OOP 并尊重这一点的更好语言,但无论如何我都不建议这样做。

关于python - 将类的实例存储在类变量中是一个好的模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26532899/

相关文章:

python - 通过 txt 文件中的坐标进行粒子跟踪

python - 如何在 Django 中的每个管理页面加载上运行 python 函数

java - Java 中的构造函数链接

c - 为什么有些 C API 不遵循封装

python - Python 中的请求与请求模块

python - Pandas Series.rename 未反射(reflect)在 DataFrame 列中

iphone - UIButton 类引用文档中的 addTarget 方法

c++ - 如何删除链表输入中的重复条目?

javascript - JavaScript 有类吗?

javascript - getOwnPropertyDescriptor 有值时返回 undefined