Как аккуратно обернуть другие классы моделей в один класс? - PullRequest
0 голосов
/ 18 января 2019

Я сделал обертку, и недавно я подумал о том, что, по моему мнению, является плохим дизайнерским решением, но я не уверен, что будет лучшей альтернативой.

В настоящее время моя обертка работаеткак это (имена изменены):

    import wrapper
    api = wrapper.Api(params...)
    # fetch fetches data from the API
    objects = wrapper.model.fetch(api, params...)
    # get_special might be only relevant to a certain object type
    other_objects = wrapper.other_model.get_special(api, params...)

Очевидно, что передача API в качестве параметра не очень приятна, и, несмотря на это, выглядит просто плохо.Я подумал о том, чтобы поместить все эти классы в класс API, но я тоже не думаю, что это хорошая идея.Что было бы лучшим выбором дизайна?

Заранее спасибо: D

По запросу я добавляю больше деталей.Мое приложение является оберткой для сайта launchlibrary.net, которая предоставляет данные о запусках ракет.Это доступно здесь - https://github.com/Plutoberth/python-launch-library

В принципе, я не уверен, как реализовать это так, чтобы это было аккуратно и не требовало от вас проходить API каждый раз.Мой идеальный способ был бы таким, но я думаю, что это потребовало бы добавления этих функций в API, что сделало бы его довольно большим.

import launchlibrary as ll # the wrapper
api = ll.Api(params..)
launches = api.Launch(params...)

Я думаю, что это скорее вопрос проектирования, чем реализацияодин.Реализация этого фрагмента кода была бы тривиальной, но это сделало бы мой класс API огромным.

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