Я использую шаблон построителя, чтобы разделить кучу различных возможностей конфигурации. В принципе, у меня есть куча классов с именем ID (что-то вроде ID12345). Все они наследуются от класса базового построителя. В моем script мне нужно создать экземпляр для каждого класса (около 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()
Таким образом, когда мне нужно добавить новый в будущем, все, что мне нужно сделать, это добавить идентификатор в список IDS, а не надуть новый идентификатор кода.
ИЗМЕНИТЬ
Похоже, существуют разные мнения, основанные на том, откуда поступают данные. Эти идентификаторы вводятся в файл, к которому никто не имеет доступа. Я не читаю строки из командной строки, и я хотел бы иметь возможность делать как можно меньше изменений при добавлении нового идентификатора в будущем.