Fari

api VS spi

api 和 spi 的区别:api 就是别人写好一些函数,然后规定一个调用这些函数的声明集合,spi 简单理解就是回调函数的集合,例如在android或web等需要响应交互情况下,会有很多回调函数,例如 on_key_down() 用于监听键盘按下事件,on_mouse_move() 用于监听鼠标移动事件,这些函数都有一个特点,就是只会在特定的情况下自动触发执行,而不能直接运行。作为服务提供方,我就可以选择将这些回调函数封装成一个类,在适当的时候调用这些函数,消费方使用时,让开发人员实现这个类并传给我
简单概括就是:api是由服务消费方选择调用时机,spi由服务提供方选择调用时机

另一种说法是api由服务提供方制定规范,而spi由服务消费方制定规范,我认为是不恰当的,反而我觉得两者都是服务提供方制定的规范,不同点仅在于谁决定服务的调用时机