我在 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/