跳至主要內容

第8章-设计API时要区分其目标用户群

引领潮流大约 1 分钟软件框架设计艺术archive

提供给客户端代码的API与为开发商提供的API要有所不同 给用户开发者API ,为开发设计者提供注册插件扩展功能方式是SPI(Service Provider Interface)

####1、C和Java语言中如何定义API和SPI C语言中函数指针 Java中的接口

####2、API演进不同于SPI API中添加内容是容许的,移除是不容许的 SPI中添加内容是有损的,移除是可以的

####3、java.io.writer 从jdk1.4到jdk1.5演进 反射解决兼容性 给客户使用的API,最好用final类,不容许继承 设计SPI时候,最好用接口,结合工厂模式,不容许代理

####4、合理分解API API也要分类 原则

把有关联的方法防止在同一个类中
对于无关的方法,不因一时找不到合适位置,随便放
把有关联的类防止在同一个包中
把一些只有特殊场景下才用到的类转移到其他地方

API集合有不同受众,要根据受众分类 api与spi间要划一条泾渭分明的界限

netbeans项目把API划分四类

  • 核心类型API
  • 支持类型API
  • 核心类型SPI
  • 支持类型SPI