【软件设计】API和SPI

服务化编程原则
本文探讨了服务化编程的核心原则,强调代码设计应围绕服务展开,无论是接口定义还是其实现。通过人握杯子的例子,阐述了SPI(服务提供者接口)、API(应用编程接口)和标准接口的概念及它们在软件设计中的角色。

服务话的开发应该具备这样的能力
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是别人暴露的规范,我为了适配,需要具备这样的能力。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值