我什么时候应该在Java中使用接口?[已关闭]
一个很好的例子是,何时在Java中专门使用接口将是理想的,并且任何适用的特定规则都是理想的。
一个很好的例子是,何时在Java中专门使用接口将是理想的,并且任何适用的特定规则都是理想的。
一个值得一看的好地方是集合框架。
java.util.List //interface
java.util.ArrayList //Concrete class
java.util.LinkedList //Concrete class
所以你可以像这样编写代码:
List l = new ArrayList();
l.add(..)
//do something else.
如果将来你想用say或你自己的接口来改变实现,你所要做的就是将第一行更改为:LinkedList
AwesomeList which implements List
List l = new MyAwesomeList();
or
List l = new LinkedList();
代码的其余部分将遵循。
使用接口来定义“第三方”供应商必须完全遵守和实现的应用程序编程协定(蓝图、接口)。通过这种方式,最终用户可以只根据API协定进行编码,并轻松地在“后台”切换具体实现,而无需更改代码。
JDBC API 就是一个很好的例子。它几乎只存在接口。具体实现以“JDBC 驱动程序”的形式提供。这使您能够独立于数据库 (DB) 供应商编写所有 JDBC 代码。只要您想切换数据库供应商,您只需更改 JDBC 驱动程序,而无需更改任何 Java 代码行(任何硬编码的特定于数据库的 SQL 代码除外)。
另一个例子是Java EE API,它还包含几乎很多接口和抽象类。具体实现以“Java EE应用服务器”,“Servletcontainers”等形式提供,例如Sun Glassfish,Apache Tomcat等。这使您能够将 Web 应用程序 (WAR) 部署到您喜欢的任何 Java Web 服务器。