码迷,mamicode.com
首页 > 编程语言 > 详细

Java设计模式菜鸟系列(十七)桥接模式建模与实现

时间:2014-10-12 02:28:17      阅读:258      评论:0      收藏:0      [点我收藏+]

标签:java设计模式   uml   架构   设计模式   模式   

转载请注明出处:http://blog.csdn.net/lhy_ycu/article/details/40008711


桥接模式(Bridge): 把事物和其具体实现分开(抽象化与实现化解耦),使他们可以各自独立的变化。假设你的电脑是双系统(WinXP、Win7),而且都安装了mysql、oracle、sqlserver、DB2这4种数据库,那么你有2*4种选择去连接数据库。按平常的写法,咱要写2*4个类,但是使用了桥接模式,你只需写2+4个类,可以看出桥接模式其实就是一种将N*M转化成N+M组合的思想。

一、uml建模:

bubuko.com,布布扣


二、代码实现

/**
 * 桥接模式(Bridge): 把事物和其具体实现分开(抽象化与实现化解耦),使他们可以各自独立的变化。
 * 
 * 假设你的电脑是双系统(WinXP、Win7),而且都安装了mysql、oracle、sqlserver、DB2这4种数据库
 * 
 * 那么你有2*4种选择去连接数据库。按平常的写法,咱要写2*4个类,但是使用了桥接模式,你只需写2+4个类
 * 
 * 可以看出桥接模式其实就是一种将N*M转化成N+M组合的思想。
 */
interface Driver {
	public void method();
}

class MysqlDriver implements Driver {

	@Override
	public void method() {
		System.out.println("use mysql driver to connection db...\n");
	}
}

class OracleDriver implements Driver {

	@Override
	public void method() {
		System.out.println("use oracle driver to connection db...\n");
	}
}

/**
 * 这里你还可以写SqlserverDriver、DB2Driver...
 */

abstract class Computer {
	public abstract void connection(Driver driver);
}

class WinXP extends Computer {
	@Override
	public void connection(Driver driver) {
		System.out.println("WinXP Computer");
		driver.method();
	}
}

class Win7 extends Computer {
	@Override
	public void connection(Driver driver) {
		System.out.println("Win7 Computer");
		driver.method();
	}
}

/**
 * 客户端测试类
 * 
 * @author Leo
 */
public class Test {
	public static void main(String[] args) {
		/**
		 * 第一种组合:winXP使用mysql驱动连接数据库
		 */
		Computer winxp = new WinXP();
		winxp.connection(new MysqlDriver());
		/**
		 * 第二种组合:win7使用mysql驱动连接数据库
		 */
		Computer win7 = new Win7();
		win7.connection(new MysqlDriver());
		/**
		 * 第三种组合:winXP使用oracle驱动连接数据库
		 */
		Computer cwinxp = new WinXP();
		cwinxp.connection(new OracleDriver());
		/**
		 * 第四种组合:winXP使用oracle驱动连接数据库
		 */
		Computer cwin7 = new Win7();
		cwin7.connection(new OracleDriver());

	}
}

三、总结

桥接的核心思想是:将抽象化与实现化解耦,使得二者可以独立变化。

Java设计模式菜鸟系列(十七)桥接模式建模与实现

标签:java设计模式   uml   架构   设计模式   模式   

原文地址:http://blog.csdn.net/lhy_ycu/article/details/40008711

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!