Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >插件API与类库API

插件API与类库API
EN

Stack Overflow用户
提问于 2012-02-11 15:13:40
回答 1查看 3.6K关注 0票数 5

关于API是什么,这里有很多东西,但是我无法找到插件API和类库API之间的区别需要什么。反正我也不明白。

在这本书“文档化API”中,我读到:插件API和类库API之间的关键区别在于哪一方为公开的API提供了实现。

Plugin :发布者创建一个应用程序并公开一个插件API;第三方开发人员实现该API。第三方开发者插件扩展了发行者应用程序的功能。

类库API:发布服务器创建并实现该API。最终用户通过API使用类库编写应用程序。通过类库,发布者实现了一个公开API的功能库。

我想我懂这个插件了。我不清楚类库API。这是否像打印机制造商基于O/S类库创建驱动程序,从而使打印机与该O/S一起工作?

如果是这样的话,您能更多地解释API本身的差异吗?它们是否仍然是一套暴露的方法?发布者是如何实现自己的API的?

参考资料

文档化API:http://www.amazon.com/documenting-APIs-writing-developer-documentation/dp/0963002104

What is the difference between a Java API and a library?

Difference between framework vs Library vs IDE vs API vs SDK vs Toolkits?

API vs Toolkit vs Framework vs Library

EN

回答 1

Stack Overflow用户

发布于 2012-02-12 06:32:14

它们都是软件接口。这意味着它们看起来很相似,通常是一个Java存档(JAR),包含一个带有接口、类、异常等的包(或多个包)。

我能理解你为什么觉得这本书里的解释令人困惑。就API本身而言,在这两种情况下都提供了Java实现。

主要的区别在于如何使用这些Java代码。对于插件API (我喜欢称之为服务提供者接口(,SPI) ),您主要需要通过实现提供的Java接口和/或扩展提供的类来添加自己的功能。另一方面,您只需要调用Library API (我喜欢简单地称之为API),很少需要您实现接口或扩展类。

由于它们的使用方式,在设计SPI和如何设计API之间有许多细微的差别。虽然我没有专门用于比较SPI和API的文章,但当我讨论API设计的各个方面时,我通常会指出这些不同之处:

http://theamiableapi.com/

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9244887

复制
相关文章
Java父类强制转换子类原则
最近,微信群友在讨论子类父类的转换问题,其实不难,给大家用实例来说明一下就很明了了。 我们知道Java中子类转换成父类是没有任何问题的,那父类可以转换成子类吗? 来看下面这段程序: public class TestObjectConvert { public static void main(String[] args) { test1(); test2(); } private static void test1() { F
Java技术栈
2018/04/02
2.3K0
Java父类强制转换子类原则
Java强制类型转换异常
(2) 说明我文件夹modle里面的Question类,不能转换成com.core.entity文件里面的question类。
算法与编程之美
2023/01/03
1.8K0
Java强制类型转换异常
java.lang.ClassCastException(java强制类型转换异常)
ClassCastException,从字面上看,是类抛出异常,即是类型转换错误,通常是进行强制类型转换时候出的错误。如下图所示:
黑泽君
2018/10/11
44.8K0
java.lang.ClassCastException(java强制类型转换异常)
java类型强制转换异常例子_java.lang.unsatisfiedlinkerror
ClassCastException,从字面上看,是类型转换错误,通常是进行强制类型转换时候出的错误。下面对产生ClassCastException异常的原因进行分析,然后给出这种异常的解决方法。 这种异常是如何产生的呢?举一个比较形象的例子。 Animal表示动物,Dog表示狗,是动物的子类,Cat表示猫,是动物的子类。看下面的代码:
全栈程序员站长
2022/10/04
7850
Java子类与父类之间的对象转换(说明继承)
在使用Java的多态机制时,常常使用的一个特性便是子类和父类之间的对象转换。从子类向父类的转换称为向上转换(upcasting),通过向上转换,我们能够在编写程序时采用通用程序设计的思想,在需要使用子类对象的时候,通过把变量定义为父类型,我们可以通过一个变量,使用该父类型的所有子类型实例;从父类型向子类型的转换称为向下转换(downcasting),通过向下转换,我们能在必要的时候,将父类型变量转换成子类型变量,使用一些通过子类型才能够使用的方法。以下是我对于对象转换的一些个人理解,如有不对,欢迎指正,虚心向大神们请教。
用户7886150
2020/12/10
3.8K0
Java数组 强制类型转换
最重要的是!!!最开始的时候声明的数组类型!!! 最重要的是!!!最开始的时候声明的数组类型!!! 最重要的是!!!最开始的时候声明的数组类型!!!
地鼠窝里有个Gopher
2022/10/30
1.8K0
java 父类 new 子类
父类: public class A {   public  void  say(){        System.out.println("Hello   A");   } } 子类: public class B extends  A{ public  void  say(){ System.out.println("Hello   B"); } public void sing(){ System.out.println("sing   hell
用户1220053
2018/02/09
2.5K0
Java基础:数值类型转换、强制类型转换
数值类型之间的转换,在小数值往大数值转换时,不会发生精度的损失。在小数值往大数值转换时有可能发生精度的损失。
呆呆
2021/10/04
2.4K0
Java——集合工具类(Collections工具类、Stack子类)
Collections是专为集合服务的工具类,可以进行List、Set、Map等集合的操作,比较有用 的方法如下:
Winter_world
2020/09/25
9240
Java——集合工具类(Collections工具类、Stack子类)
java的类型转换异常_类型转换异常英文
自己的项目中,有个定时任务的模块,里面需要将返回的对象强转为某个实体类JobModel,可是在转换的过程中,却报出了java.lang.ClassCastException: com.jy.admin.server.model.JobModel cannot be cast to com.jy.admin.server.model.JobModel
全栈程序员站长
2022/09/30
1.5K0
outputstream类或writer类的子类_java private
在本教程中,我们将借助示例学习Java OutputStreamWriter及其方法。
全栈程序员站长
2022/10/01
5430
outputstream类或writer类的子类_java private
Java异常类
异常指不期而至的各种状况,如:文件找不到、网络连接失败、非法参数等。异常是一个事件,它发生在程序运行期间,干扰了正常的指令流程。Java通 过API中Throwable类的众多子类描述各种不同的异常。因而,Java异常都是对象,是Throwable子类的实例,描述了出现在一段编码中的 错误条件。当条件生成时,错误将引发异常。
翎野君
2023/05/12
4450
Java异常类
java父类引用指向子类对象好处_java子类调用父类属性
Java之所以引入多态的概念,原因之一就它在类的继承上的问题和C++不同,后者允许多继承,这确实给其带来了非常强大的功能,但是复杂的继承关系也给C++开发者带来了更大的麻烦,为了规避风险,Java只允许单继承,势必在功能上有很大的限制,所以,Java引入多态性的概念以弥补这点不足,此外,抽象类和接口也是解决单继承规定限制的重要手段.同时,多态也是面向对象编程的精髓所在.
全栈程序员站长
2022/11/03
1.3K0
[python]父类、子类、子类实例属性
本文旨在说明 父类、子类、子类实例的属性继承关系: >>> A = type('A', (), {'name':1}) >>> B = type('B',(A,), {'addr':'beijing'})    #B的父类为A >>> A.__dict__ mappingproxy({'name': 1, '__module__': '__main__', '__dict__': <attribute '__dict__' of 'A' objects>, '__weakref__': <attribute
py3study
2020/01/19
1.9K0
[计组]强制类型转换
不改变数值内容,改变解释方式,一般是负数时会出问题,因为符号位是1,转成无符号位时会被当成数据内容
唯一Chat
2021/01/08
1.9K0
Java知多少(53)使用Java创建自己的异常子类
尽管Java的内置异常处理大多数常见错误,你也许希望建立你自己的异常类型来处理你所应用的特殊情况。这是非常简单的:只要定义Exception的一个子类就可以了(Exception当然是Throwable的一个子类)。你的子类不需要实际执行什么——它们在类型系统中的存在允许你把它们当成异常使用。
全栈程序员站长
2022/07/05
3200
【原创】JAVA数值类型强制类型转换扩展
 经常需要将一些数值类型转换为另外一种数值类型。下图给出了数值类型之间的合法转换。
零点
2023/10/18
1750
【原创】JAVA数值类型强制类型转换扩展
Java导出excel工具类
web开发中,一个系统的普通需求也包括导出excel,一般采用POI做统计报表导出excel。
用户7108768
2021/09/23
1.1K0
Java之——自动类型提升、强制类型转换
Java各整数类型有固定的表数范围和字段长度,不受具体操作系统的影响,以保证Java程序的可移植性
CODER-V
2023/03/04
1K0
Java之——自动类型提升、强制类型转换
【说站】java强制类型转换的使用
2、如果试图将一个数值从一种类型强制转换为另一种类型,而又超出了目标类型的表示范围,结果就会截断成一个完全不同的值。
很酷的站长
2022/11/24
7860
【说站】java强制类型转换的使用

相似问题

查询以查找列表中的所有匹配项。

11

以列表作为参数的spring数据查询方法

12

以有效的方式将dict中的所有项作为参数传递

224

使用列表中的项作为参数

22

JDOQL子查询计数问题

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文