python - 如何将其他模型类整齐地包装在一个类中?
问题描述
我做了一个包装,最近我反思了我认为什么是糟糕的设计决策,但是,我不确定什么是更好的选择。
目前,我的包装器是这样工作的(名称已更改):
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 类中,但我认为这也不是一个好主意。什么是更好的设计选择?
先谢谢了
根据要求,我正在添加更多详细信息。我的应用程序是网站 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 类变得巨大。
解决方案
推荐阅读
- vue.js - 当我在 Vue 中使用 ScrollintoView 时,使用 Behavior: Smooth 不起作用
- android - 无法在 Android 应用的插页式广告中播放此视频错误
- matlab - 如何最好地解决此 MATLAB 名称冲突?
- amazon-quicksight - 如何在 AWS quicksight 中突出显示空单元格
- c# - 为什么数据不显示?在表中
- arrays - 删除数组的一个元素
- wordpress - google recaptcha v3 恢复密钥
- django - 在 django 3.2.4 中运行 django-simple-buefy
- vue.js - Vue 3 - 如何在设置中分派到 Veux 商店
- crystal-reports - SAP Crystal Report:子报表未显示生产中的数据