Я сделал обертку, и недавно я подумал о том, что, по моему мнению, является плохим дизайнерским решением, но я не уверен, что будет лучшей альтернативой.
В настоящее время моя обертка работаеткак это (имена изменены):
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 огромным.