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

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数据库连接


 

你可能感兴趣的:(java,设计模式,java设计模式)