如何区分实现和规范
How to differentiate an implementation from specification
假设我有一个简单的 servlet 程序,它只需要 Web 容器。还假设我没有使用 IDE 来编译这个程序。我可以按如下方式编译我的程序。
javac -classpath /path/tomcat/common/lib/servlet-api.jar -d classes src/Ch1Servlet.java
有人说servlet-api.jar
只是规范,实现由tomcat服务器提供。这让我很困惑。
如果我使用一个库编译了一个程序,当我也运行这个程序时我仍然需要同一个库。因此在某些时候 Tomcat 必须在 运行 应用程序时使用上面指定的相同库 (servlet-api.jar)。
实现和规范的真正含义是什么?什么使代码只是规范?代码中的示例将非常有用。
Interfaces/Abstract 类 为规范做出贡献,它的实际实现是我们使用的实现。
库包含声明 - 修复方法的接口。例如
public interface SaveInterface {
void save();
}
您使用界面来保存数据,但实现方式可能不同。 Tomcat 在此处保存内容,在此处保存另一个应用程序。一切都取决于真正的实施。但是按照您的逻辑,您并不关心它是如何实现的。你用的界面。
假设我有一个简单的 servlet 程序,它只需要 Web 容器。还假设我没有使用 IDE 来编译这个程序。我可以按如下方式编译我的程序。
javac -classpath /path/tomcat/common/lib/servlet-api.jar -d classes src/Ch1Servlet.java
有人说servlet-api.jar
只是规范,实现由tomcat服务器提供。这让我很困惑。
如果我使用一个库编译了一个程序,当我也运行这个程序时我仍然需要同一个库。因此在某些时候 Tomcat 必须在 运行 应用程序时使用上面指定的相同库 (servlet-api.jar)。
实现和规范的真正含义是什么?什么使代码只是规范?代码中的示例将非常有用。
Interfaces/Abstract 类 为规范做出贡献,它的实际实现是我们使用的实现。
库包含声明 - 修复方法的接口。例如
public interface SaveInterface {
void save();
}
您使用界面来保存数据,但实现方式可能不同。 Tomcat 在此处保存内容,在此处保存另一个应用程序。一切都取决于真正的实施。但是按照您的逻辑,您并不关心它是如何实现的。你用的界面。