<%@ page contentType="text/html; charset=gb2312"%> 实例讲解Java中的接口的作用
网站公告:   ◆北天JAVA技术网热情为java爱好者服务,本网内容包括JAVA(JSP、servlet、EJB、webservice、j2ee、javabean、应用服务器、JavaScript),数据库(MYSQL、SQL Server、Sybase、Oracle、DB2、数据库综合知识),设计研究(设计模式、Struts、Spring、Hibernate、设计框架、设计综合知识),WEB2.0新技术(主要介绍AJAX),以及各种技术的入门、实例、例子等等,欢迎各位多来坐坐!◆  诚邀各位JAVA爱好者加盟!◆  本网站内容丰富,更新快,保证每周20篇以上!  
加入收藏
设为首页
联系站长
承接项目
  相关资源:网站首页 | 免费培训学院 | 技术论坛 | JAVA聊天室 | 作家专栏 | 开发工具 | 认证考试 | 会员俱乐部
  JAVA技术初学者园地 | jsp与servlet | javascript | Java源代码 | EJB | web service | 应用服务器 | JAVA综合知识
  设计研究设计模式 | 设计框架 | Struts | Spring | Hibernate | 开源项目 | 面向对象设计 | 设计综合知识
  数 据 库MYSQL | SQL Server | Sybase | Oracle | DB2 | Informix | Access | 数据库综合知识
  其他资源:AJAX新技术 | 网站开发 | ERP软件 | OA办公软件 | 商业智能BI | 开发综合知识 | 承接项目 | 项目试用

 
 
实例讲解Java中的接口的作用
     发布者: 发布时间:2007-06-28
接口的作用

接口的作用简单一点就是:接口是用来标记类的,不同的类属于不同的接口(通过向上转型),管理接口比管理各种各样的类方便多了,接口体现了抽象的观点,什么是抽象?抽象就是"抽去像的部分"。

使用接口解决问题

问题:现在我们要写个连接数据库的类给用户使用,有两个函数:一个返回Connection对象,另一个是关闭数据库,close(),一般的解决方法是:给每个数据库写一个类,再根据用户使用的数据库决定使用具体的类。

好的,我们看看这样有什么不好之处:

(1).首先每个类都要有重复的代码,造成代码的膨胀;

(2).其次最重要的是我们并不知道用户使用什么数据库,可能是Oracle,可能是mysql,也可能是sqlserver等,这个问题很难解决。

解决方案:

首先我们定义接口:


public interface DataBase
  {
  java.sql.Connection openDB(String url,String user,String password);
  void close();
  }


我们定义了两个方法,openDB返回Connection对象,close()关闭数据库;

具体的实现在实现DataBase接口的类中;

下面看看实现:


import java.sql.*;
  public class Mysql implements DataBase
  {
  private String url=”jdbc:mysql:localhost:3306/test”;
  private String user=”root”;
  private String password=””;
  private Connection conn;
  public Connection openDB(url,user,password)
  {
    //连接数据库的代码
  }

  public void close()
  {
    //关闭数据库
  }
  }


类mysql实现了DataBase接口,下面还有实现了DataBase接口的oraclesql等类;

这些类都归于DataBase接口了,如何在应用程序中使用呢?

我们要定义DataBase对象 myDB,通过myDB来操纵数据库,可以不要分清是哪个类了。

另外的问题:Java中不许我们实例化接口,如DataBase myDB=new DataBase();

我们只能myDB=new Mysql()或者myDB=new Oracle()。这样我们还必须指定实例化哪个对象,好像前面的努力都白费了啊!!那怎么办呢,我们需要一个工厂:


public class DBFactory
  {
  public static DataBase Connection getConn()
  {
    Return(new Mysql());
  }
  }


实例化的代码变成:myDB=DBFactory.getConn();

整个过程中接口不负责任何具体操作,其他的程序要连接数据库的话,只需要构造一个DB对象就OK,而不管工厂类如何变化。这就是接口的意义----抽象。
    

 
(转载文章请保留出处:北天JAVA技术网(www.java114.com))
 
更多精彩文章:
Spring框架的事务管理及应用
使用ActionForward优化Struts应用程序
高性能、高弹性JSP和Servlet性能优化
一季度java报表开发业内渐起硝烟
java报表开发工具free的~
Java程序最容易犯的21种错误实例分析
 
最近评论:
        
冰封的往事!
wow power leveling,wow gold,wow power leveling,wow gold max(1181)
        
冰封的往事!
wow power leveling,wow gold,WoW Gold,wow gold max(5933)
        
飞舞的传奇!
传世私服,传世私服.传奇世界私服传奇世界私服,传世私服传世私服, 传奇世界私服传奇世界私服.传奇私服传奇私服. max(349)
        
标 题:   
内 容:   
 
                                  
 
免责声明:该文章由网友发表,如果对您造成侵权,请联系站长

首页 - 承接项目 - 网站地图 - 联系我们 -
版权所有北天JAVA技术工作室 ICP证号:粤ICP备06079815号