java设计模式第4弹--桥接模式

来源:互联网 发布:杭州淘宝诈骗案进展 编辑:程序博客网 时间:2024/06/16 11:59

一、桥接模式慨念

将抽象化与实现化脱耦,使得二者可以独立的变化。

二、解决的问题

他们之间的强关联变成弱关联,也就是指在一个软件系统的抽象化和实现化之间使用组合/聚合关系而不是继承关系,从而使两者可以独立的变化


三、代码模拟实现

public interface DataSource {public void method();}

public class MySqlSource implements DataSource{@Overridepublic void method() {System.out.println("我是Mysql 数据源");}}

public class OracleSource implements DataSource{@Overridepublic void method() {System.out.println("我是Oracle数据源");}}

public abstract class Bridge {private DataSource dataSource;public void method(){dataSource.method();}public DataSource getDataSource() {return dataSource;}public void setDataSource(DataSource dataSource) {this.dataSource = dataSource;}}

public class MyBridge extends Bridge{public void method(){getDataSource().method();}}

public class BridgeTest {/** * @param args */public static void main(String[] args) {Bridge bridge = new MyBridge();/** * 调用第一个对象 */DataSource oracle = new OracleSource();bridge.setDataSource(oracle);bridge.method();/** * 调用第二个对象 */DataSource mysql = new MySqlSource();bridge.setDataSource(mysql);bridge.method();}}

控制台输出如下:

我是Oracle数据源
我是Mysql 数据源


参考大话设计模式中的心得:

和适配器模式的共同点就是都是让两个东西配合工作

不同点:

适配器模式:改变已有的两个接口,让他们相容

桥接模式:分离抽象化和实现,使两者的接口可以不同,目的是分离。

如果你拿到两个已有模块,想让他们同时工作,那就使用适配器模式,如果你还什么都没有,但是想分开实现,就用桥接模式。

记住:桥接模式是先有桥,才有两端的东西,适配器是先有两边的东西,才有适配器,桥接是在桥好了之后,两边的东西还可以变化。

0 0
原创粉丝点击