我在Python中经常使用的一种设计模式是:
class Foo:
foos = []
def __init__(self, argument):
initialize_instance()
foos.append(self)
这是否有名称,是否被认为是有用的模式?
答案 0 :(得分:1)
我真的不认为这是OOP的一个好习惯(我不是Python的专家)。使用静态(如列表foos
)几乎总是一个糟糕的概念。如评论中所述,更好的解决方案是设置服务类(在OOP中查看SOA模式)以索引Foo
的所有实例并进一步检索它们。
但是,不要认为这是注册表模式的变体。这是这种模式的反模式,阻止了类之间正确的低耦合。当然,Python并不是做强OOP并且尊重这一点的更好的语言,但无论如何我都不建议这样做。