У меня возникают проблемы с ООП при разборе файла конфигурации и создании экземпляров объектов другого типа. Интересно конкретно об ответственности за построение и проверку параметров из файла конфигурации.
Давайте рассмотрим пример, я хочу создать экземпляр Animals (абстрактный класс), а также транспортных средств (абстрактный класс), и я определяю подклассы для каждого (Dog, Cat - Car, Plane). У меня есть следующий файл конфигурации, например, с собакой и автомобилем:
animal:
type: cat
size: 0.4
scream: miaou
vehicle:
type: car
motor: super3000
size: 2.6
Я создал объект Config, отвечающий за разбор файла конфигурации и получение данных в формате dict. Затем я создал фабрики, отвечающие за проверку заданных параметров и за создание объектов, так что код клиента выглядит следующим образом:
def main():
animal = AnimalFactory.create_animal(config)
vehicle = VehicleFactory.create_vehicle(config)
do_super_stuff(animal, vehicle)
Таким образом, каждая фабрика имеет зависимость от объекта Config: это плохая практика? Есть ли лучший способ (или более питонический способ) сделать это?