Python - ООП Создание различных объектов из конфигурационного файла - PullRequest
0 голосов
/ 07 ноября 2019

У меня возникают проблемы с ООП при разборе файла конфигурации и создании экземпляров объектов другого типа. Интересно конкретно об ответственности за построение и проверку параметров из файла конфигурации.

Давайте рассмотрим пример, я хочу создать экземпляр 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: это плохая практика? Есть ли лучший способ (или более питонический способ) сделать это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...