利用接口的思想,定义Dbdriver驱动接口,通过该接口实现 IBMdriver类、Googledriver类,定义UserDriver类来使用该驱动。编 写该程序并实现不同的驱动输出不同的内容。
时间: 2024-10-21 15:07:58 浏览: 26
利用接口(Interface)的设计模式可以实现组件间的解耦和灵活性。首先,我们创建一个`IDbDriver`接口,它定义了数据库操作的基本功能:
```java
// IDbDriver接口
public interface IDbDriver {
void connect();
void executeQuery(String sql);
void closeConnection();
}
```
接着,我们可以分别为IBM数据库和Google数据库创建对应的实现类:
```java
// IBMDriver类实现IDbDriver接口
public class IBMDriver implements IDbDriver {
@Override
public void connect() {
System.out.println("Connecting to IBM DB...");
}
@Override
public void executeQuery(String sql) {
System.out.println("Executing query on IBM DB: " + sql);
}
@Override
public void closeConnection() {
System.out.println("Closing connection to IBM DB");
}
}
// GoogleDriver类也实现IDbDriver接口
public class GoogleDriver implements IDbDriver {
@Override
public void connect() {
System.out.println("Connecting to Google BigQuery...");
}
@Override
public void executeQuery(String sql) {
System.out.println("Executing query on Google BigQuery: " + sql);
}
@Override
public void closeConnection() {
System.out.println("Closing connection to Google BigQuery");
}
}
```
然后,我们创建一个`UserDriver`类,它持有`IDbDriver`类型的引用,并根据需要实例化具体的驱动:
```java
// UserDriver类
public class UserDriver {
private IDbDriver driver;
public UserDriver(IDbDriver dbDriver) {
this.driver = dbDriver;
}
public void operateDatabase() {
driver.connect();
driver.executeQuery("Your SQL statement here"); // 使用不同驱动的executeQuery方法
driver.closeConnection();
}
}
```
现在,你可以根据实际需求创建`UserDriver`的实例,并传递不同的`IDbDriver`实现:
```java
public static void main(String[] args) {
UserDriver ibmDriver = new UserDriver(new IBMDriver());
ibmDriver.operateDatabase();
UserDriver googleDriver = new UserDriver(new GoogleDriver());
googleDriver.operateDatabase();
// ...
}
```
这样,每次调用`operateDatabase`方法时,都会根据传入的不同驱动执行相应的操作,输出对应数据库的信息。这就是接口在不同驱动之间切换的一个简单示例。
阅读全文