java设计模式之桥梁模式(10)

时间:2021-02-26 16:01:04

java设计模式之桥梁模式(10)
又叫桥连模式。
桥梁模式是对象的结构模式,桥梁模式的用意是:将抽象化与实现化脱耦,使得二者可以独立地变化。

接口就是抽象化,实现类就是实现化,把接口和实现类分开就是脱耦。说起来看似很简单,最重要的是它体现的

面向对象的思想。

java中的JDBC是最典型的桥梁模式。曾记得刚学JDBC的时候,老师总是告诉我说“我们使用JDBC桥连的方式连接数据库”

当时我实在不理解“JDBC桥连”,为什么是这个名字。后来接触到设计模式的时候才恍然大悟,软来JDBC是使用桥连模式

所以就叫了JDBC桥连。哈....

先来熟悉一下使用JDBC的代码:

Class.forName("com.mysql....");//或者DriverManager.registerDriver(new Driver()); 
DriverManager.getConnection(url,user,password);

DriverManager根据具体实现来获取数据库连接。

JDK编写人员在编写DriverManager的代码的时候并不关心客户端会注册一个什么数据库驱动,也就是
不关心具体的实现。只在DriverManager中保留数据库驱动的抽象表示。客户端根据需要注册所需要
的数据库驱动。
我们简单的模拟一下JDBC桥连:

package com.pattern.struct.bridge;

public interface Driver {

public void getConnection();

}


 

package com.pattern.struct.bridge;

public class MysqlDriver implements Driver{

@Override
public void getConnection() {
System.out.println("mysql 数据库连接");
}


}


 

package com.pattern.struct.bridge;

public class OracleDriver implements Driver {

@Override
public void getConnection() {
System.out.println("oracle数据库连接");
}


}


 

package com.pattern.struct.bridge;

public abstract class Manager {
private Driver driver;

public void getConnection(){
driver.getConnection();
}


public void setDriver(Driver driver) {
this.driver = driver;
}



}


 

package com.pattern.struct.bridge;

public class DriverManager extends Manager {

public DriverManager(Driver driver){
setDriver(driver);
}


public void getConnection() {
super.getConnection();
}

}


 

package com.pattern.struct.bridge;

public class Client {

/**
* @param args
*/
public static void main(String[] args) {
DriverManager manager = new DriverManager(new MysqlDriver());
manager.getConnection();

manager = new DriverManager(new OracleDriver());
manager.getConnection();

}

}


 

mysql 数据库连接
oracle数据库连接