我在Python中使用了建造者模式来分离一堆不同的配置可能性。基本上,我有一堆以ID...
(例如ID12345
)命名的类,它们都继承自基础Builder类。在我的脚本中,每次运行此应用程序时,我需要实例化每个类的实例(大约50次)。因此,我正在尝试看看是否可以像这样做:
ProcessDirector = ProcessDirector()
ID12345 = ID12345()
ID01234 = ID01234()
ProcessDirector.construct(ID12345)
ProcessDirector.construct(ID01234)
ID12345.run()
ID01234.run()
我能不能像这样做(我知道这行不通):
IDS = ["ID12345", "ID01234"]
ProcessDirector = ProcessDirector()
for id in IDS:
builder = id() #some how instantiate class from string
ProcessDirector.construct(builder)
builder.run()
这样,当我将来需要添加新的ID时,只需将其添加到IDS列表中,而不是在代码中到处添加新的ID。
编辑:
看起来基于数据来源有不同的意见。这些ID是在一个没有其他人访问权限的文件中输入的。我不是从命令行读取字符串,并且希望未来添加新ID时尽可能少地更改。