文档章节

Java接口

那位先生_
 那位先生_
发布于 2014/06/10 20:22
字数 574
阅读 156
收藏 10

一:接口的作用 接口的作用简单一点就是:接口是用来标记类的,不同的类属于不同的接口(通过向上转型),管理接口比管理各种各样的类方便多了,接口定义一种规范,实现多态

二:接口解决问题 问题:现在我们要写个连接数据库的类给用户使用,有两个函数: 一个返回Connection对象,另一个是关闭数据库close(),

一般的解决方法是:给每个数据库写一个类,再根据用户使用的数据库决定使用具体的类。 好的,我们看看这样有什么不好之处:

(1).首先每个类都要有重复的代码,造成代码的膨胀; (2).其次最重要的是我们并不知道用户使用什么数据库,可能是Oracle,可能是mysql,也可能是sqlserver等,这个问题很难解决。

解决方案:

首先我们定义接口:

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

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

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

下面看看实现:

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接口的Oracle,SQLServer等类; 这些类都归于DataBase接口了,如何在应用程序中使用呢? 我们要定义DataBase对象myDB,通过myDB来操纵数据库,可以不要分清是哪个类了。 另外的问题:Java中不许我们实例化接口,

如 DataBase myDB=new DataBase(); 我们只能 myDB=new Mysql(); 或者 myDB=new Oracle();

这样我们还必须指定实例化哪个对象,那怎么办呢,我们需要一个工厂:

public class DBFactory{
	public DataBase getMySql(){
		return new MySql();
	}
	public DataBase getOracle(){
		return new Oracle();
	}
	...
}

实例化的代码变成:

DataBase myDB=DBFactory.getMySql();

整个过程中接口不负责任何具体操作,数据库操作类就完全和业务层解耦。 不同的数据库只要改个方法名即可构造对应的操作类

© 著作权归作者所有

那位先生_

那位先生_

粉丝 131
博文 61
码字总数 69487
作品 0
深圳
后端工程师
私信 提问
加载中

评论(1)

zy_3g
zy_3g
42
【目录导航】JAVA零基础进阶之路

【JAVA零基础入门系列】(已完结)导航目录 Day1 开发环境搭建 Day2 Java集成开发环境IDEA Day3 Java基本数据类型 Day4 变量与常量 Day5 Java中的运算符 Day6 Java字符串 Day7 Java输入与输出...

MFrank
2018/06/21
0
0
什么是Java语言?java语言简介

Java是由Sun Microsystems公司于1995年5月推出的Java程序设计语言(以下简称Java语言)和Java平台的总称。用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动态的W...

阿秀a
2010/10/19
0
0
1.3.2 java程序的运行机制和jvm

java语言比较特殊,由java语言编写的程序需要经过编译步骤,但这个编译步骤并不会生成特定平台的机器码,而是生成一种与平台无关的字节码(也就是*.class文件)。当然,这种字节码不是可执行...

Gooiem
2015/08/17
393
1
JAVA接口的概念、分类及与抽象类的区别

Java接口(Interface),是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(...

郭二翔
2011/12/17
1K
0
Eclipse 远程调试 Java 程序

今天同事问我怎么远程调试 java 程序。我不会,那马上搜索看看。在被高度的程序中加个数据就行。然后 eclipse 调试时指定端口就行,太方便了。 比如,现在有一个代码: 把这个java 导出为 re...

鉴客
2010/08/05
1K
1

没有更多内容

加载失败,请刷新页面

加载更多

使用 Arrays 类操作 Java 中的数组

Arrays 类是 Java 中提供的一个工具类,在 java.util 包中。该类中包含了一些方法用来直接操作数组,比如可直接实现数组的排序、搜索等(关于类和方法的相关内容在后面的章节中会详细讲解滴~...

Lao鹰
6分钟前
1
0
分销设置

分销设置 1.开启分销功能 是否开启分销:三级分销设置总开关 分销商是否需要申请:关闭之后会员注册将直接成为分销商,需提前设置好分销商等级。 此选择涉及佣金的计算方式,请谨慎选择! 推...

Geek-Chic
21分钟前
3
0
发布npm包

1、在NPM网站上注册,并验证(verify)自己的邮箱,一定要验证,不然在发布时会提示你 https://www.npmjs.com 2、在命令行里登录npm, 按提示依次输入用户名 密码 注册邮箱 PS {你本地库的文...

羊皮卷
41分钟前
5
0
Spark internal

SparkStream 如何使用checkpoint ? 都 9102 年了,就不要用 RDD 和 DStream API 了吧…… DataFrame/Dataset 和 Structured Streaming 是在RDD 和 DStream 上层. Spark SQL and DataFram......

MtrS
今天
9
0
Kafka实战(五) - 核心API及适用场景全面解析

1 四个核心API ● Producer API 允许一个应用程序发布一串流式的数据到一个或者多个Kafka topic。 ● Consumer API 允许一个应用程序订阅一个或多个topic ,并且对发布给他们的流式数据进行处...

JavaEdge
今天
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部