python - 为什么要在这个 API 设计模式中使用回调?
问题描述
我一直在使用为特定站点上的算法交易而制作的 API 包,当我一直在使用它时,我发现一些使用的设计模式非常混乱,让我问他们为什么这样做,这就是我我正在与:
class IBapi(EWrapper, EClient):
def openOrder(self, orderId, contract, order, orderState):
super().openOrder(orderId, contract, order, orderState)
print(order)
app = IBapi()
app.connect('127.0.0.1', 7497, 123)
app.reqAllOpenOrders() #This triggers the above openOrder method as per their design pattern via a callback
我有这个类 IBApi,它继承了父类 EWrapper 和 EClient,所以我现在可以使用super()
符号访问这两个类中的任何方法。如果我想访问说我当前的打开订单,文档说调用该方法app.reqAllOpenOrders
,然后触发回调执行openOrder
我在 IBApi 类中覆盖的方法,这意味着我可以利用它并获取我的数据。
现在从逻辑上讲,这对我来说有点道理,但是我要问的是为什么要使用这种设计模式?这是否有一个特定的原因,以及为什么他们只是没有更线性的方法,你可以调用一些方法app.getOrders
来返回我需要的所有数据的列表并且不使用回调?
解决方案
推荐阅读
- oop - 服务应该直接调用另一个服务或存储库吗?
- php - 来自 phpmyadmin 的 Android 推送通知未收到通知
- node.js - 如何使用 Angular 和 nodejs 将表单数据和文件发布到服务器?
- c# - 颜色 Excel 表头工作表表头 C#
- javascript - 有没有办法让 console.log() 更新一行而不是追加新行?
- c - 如何指示文件的最后一行
- swift - 泛型函数参数给出“表达式类型不明确,没有更多上下文”
- javascript - 无法使用 JavaScript 控制与另一个元素共享 css 类的 css 元素
- ruby-on-rails-3 - 为引导元素添加填充
- aem - AEM 调度程序仅提供来自缓存的重写 URL