以Servlet规范为例(版本并不重要)。它附带了一个描述规范的大型PDF文件。它的API (接口和类)属于javax.servlet.*包结构,我们作为程序员使用它们。例如,在编写Servlets时,我们经常使用extends javax.servlet.http.HttpServlet。
我的问题是: API类和接口(javax.servlet.*)是“特定于供应商的”(由servlet容器的每个供应商实现的)还是规范本身的一部分(因此只由每个servlet容器供应商使用)?
或者,规范实际上总是附带一个引用实现(RI),它是由规范成员创建的,可以自由使用(在某些地方,抽象类中的-like方法实现-可以自由修改)?
发布于 2016-09-03 18:11:39
这些包是规范的一部分,因此不是特定于供应商的。这样做的好处是,您可以编写与实现无关的代码,即它可以在实现规范的任何容器中运行。如果一个实现有buggy,您可以转移到新的实现,而不需要对源代码进行任何更改。
看看this question吧。
https://stackoverflow.com/questions/39305575
复制相似问题