接口的作用
接口的作用简单一点就是:接口是用来标记类的,不同的类属于不同的接口(通过向上转型),管理接口比管理各种各样的类方便多了,接口体现了抽象的观点,什么是抽象?抽象就是"抽去像的部分"。
使用接口解决问题
问题:现在我们要写个连接数据库的类给用户使用,有两个函数:一个返回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,而不管工厂类如何变化。这就是接口的意义----抽象。
分享到:
相关推荐
在工厂模式中,我们可以结合面向接口编程,让工厂类返回接口的实例而非具体的类。例如,假设我们有一个`Shape`接口,它定义了`draw()`方法。我们可以创建多个实现了`Shape`接口的具体形状类,如`Circle`和`Square`。...
Java SE程序 接口实现的工厂模式Java SE程序 接口实现的工厂模式Java SE程序 接口实现的工厂模式Java SE程序 接口实现的工厂模式Java SE程序 接口实现的工厂模式Java SE程序 接口实现的工厂模式Java SE程序 接口实现...
在ASP.NET开发中,接口(Interface)和工厂模式(Factory Pattern)是两种非常重要的设计模式。接口主要用于定义对象之间的交互规范,而工厂模式则是一种创建型设计模式,它提供了一种创建对象的最佳方式,隔离了类...
本示例中的“工厂模式、接口、抽象类”是面向对象设计中的关键概念,让我们逐一深入探讨。 首先,**工厂模式**是一种创建型设计模式,它提供了一种创建对象的最佳方式,将对象的创建过程封装起来,使得代码更加灵活...
本文将深入探讨一个基于"简单MVC框架"的设计,包括接口、工厂模式以及反射的概念。 首先,让我们理解MVC模式的核心概念: 1. **Model(模型)**:模型负责处理业务逻辑和数据管理。它是应用程序的核心,与数据库...
在基于接口的工厂模式中,我们定义一个工厂接口,然后创建多个实现了该接口的具体工厂类。这样,当需要创建新类型的对象时,只需要更换工厂类,而无需修改使用这些对象的代码。 在多层架构中,工厂模式可以用于创建...
<br>该项目是一个基于接口的工厂模式的三层架构示例解决方案的 Asp.Net 2.0版本。 <br>****************************************************** <br>Database : 该项目所使用的数据库 DEncryptTest ...
在抽象工厂模式中,有两个抽象层次:一个是产品接口,另一个是工厂接口。不同的工厂可以生产一系列相关的产品,这样,客户端就可以使用同一类型的工厂来创建一组相关的产品,而不需要关心具体的产品实现。抽象工厂...
在软件设计模式中,工厂模式是一种非常常见的创建型模式,它的主要目的是为了隔离对象的创建过程,使得客户端代码不直接依赖具体的实现类,而是通过一个公共的接口或者抽象类来获取对象。在这个“21-04-03_...
总的来说,结合C#的泛型、泛型接口、简单工厂模式以及序列化技术,我们可以构建一个灵活且高效的新闻阅览器,它能够处理各种类型的新闻数据,同时保持良好的代码结构和可扩展性。通过这样的设计,开发者可以轻松地...
《C#三层架构中的SchoolManager应用:实体、接口与工厂模式解析》 在软件开发领域,C#语言因其强大的功能和高效性而被广泛应用。在本篇中,我们将深入探讨一个名为"SchoolManager"的C#项目,它采用三层架构(数据...
- `AbstractFactory`文件很可能定义了一个抽象工厂接口以及实现了这个接口的具体工厂类。每个具体工厂类可以创建一系列相关的产品对象,形成一个产品族。 这些代码示例在`java`环境下实现,展示了如何利用工厂模式...
抽象工厂模式通过定义多个工厂接口,每个接口对应一类产品,然后由具体的工厂类实现这些接口,以创建对应的实例。这样,客户端可以通过选择不同的工厂来获取不同系列的产品,而不需要知道具体的产品实现细节。这种...
工厂方法模式将具体的对象创建过程延迟到子类中,通过接口或抽象类定义创建对象的方法,每个子类对应一个具体的产品。这种方式使得系统更具有扩展性,增加了新的产品只需添加新的子类即可,无需修改原有代码。工厂...
在.NET编程环境中,接口(Interface)和继承(Inheritance)是面向对象设计的重要概念,而工厂模式是一种常用的设计模式,用于创建对象时隐藏创建逻辑。在这个实例中,我们将深入探讨这三个核心概念以及它们如何协同...
本软件导航菜单使用了微软的iewebcontrols控件,如果不能显示树菜单链接,请安装该控件。 如果win2003系统,还需要将IE的Internet选项的本地Intranet的安全级别调低,以启用控件使用。
北大青鸟ACCP5.0 S2的课程中,深入探讨了“三层架构”以及面向对象的设计模式,包括实体类、接口、简单工厂和抽象工厂模式,同时引入了公共数据库访问层的概念。下面将详细解析这些知识点。 **三层架构**: 三层...
"简单工厂"和"接口"是两个重要的概念,它们在软件设计中扮演着关键角色。简单工厂模式是一种创建型设计模式,而接口则是面向对象编程中的一个重要特性。 简单工厂模式,又称为静态工厂方法,它提供一个公共的工厂类...
总结来说,这个“用简单工厂模式接口写计算器”的实例主要涉及了以下知识点: - C#接口(`ICalculator`)的设计和使用 - 实现接口的具体计算器类(如`AddCalculator`) - 简单工厂模式的应用,包括工厂类`...
工厂方法模式定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂角色不再负责所有的产品创建,而是将这个责任"下放"给各个子类去完成。这样做的好处是增加了系统的灵活性,当需要添加新产品时,只...