【软件设计】API和SPI

服务话的开发应该具备这样的能力
1.一切代码以服务开始,以服务结束
2.任何一个接口的代码调用都是另外一个接口,而不是接口的实现

以人握杯子举例
人握杯子
人类代码,Holdable所有权属于人类,而不是杯子
public interface Holdable{}
public interface Humanbeing {
void hold(Holdable holdable)
}
杯子家族
public class PlasticCup implements Holdable{}
public class IronCup implements Holdable{}

接口分三种
1.使用接口者拥有的接口叫做SPI:使用者(人类)决定了接口的规则,实现者根据规格提供实现(杯子)。一般来讲,SPI先产生,实现后产生;一个SPI有多个实现。好的SPI命名不用I接口打头
2.实现者拥有的接口叫做API:实现者规定了接口的规格。一般来讲,先写功能,然后再包接口;一个API通常只有一个实现。API的命名可以用I打头
3.使用者和实现者都不拥有的接口或被双方都认可的接口,叫标准

所以说API是我自己能力的抽象,SPI是别人暴露的规范,我为了适配,需要具备这样的能力。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年1月9日
下一篇 2019年1月9日

相关推荐