10 桥接模式(Bridge)

原创 2015年07月07日 19:30:06

桥接模式就是把事物和其具体实现分开,使他们可以各自独立的变化。桥接的用意是:将抽象化与实现化解耦,使得二者可以独立变化,像我们常用的JDBC桥DriverManager一样,JDBC进行连接数据库的时候,在各个数据库之间进行切换,基本不需要动太多的代码,甚至丝毫不用动,原因就是JDBC提供统一接口,每个数据库提供各自的实现,用一个叫做数据库驱动的程序来桥接就行了。我们来看看关系图:


先定义接口

public interface Sourceable {  
    public void method();  
}  

分别定义两个实现类

public class SourceSub1 implements Sourceable {  
    @Override  
    public void method() {  
        System.out.println("this is the first sub!");  
    }  
}  

public class SourceSub2 implements Sourceable {  
  
    @Override  
    public void method() {  
        System.out.println("this is the second sub!");  
    }  
}  


定义一个桥,持有Sourceable

public abstract class Bridge {  
    private Sourceable source;  
  
    public void method(){  
        source.method();  
    }  
      
    public Sourceable getSource() {  
        return source;  
    }  
  
    public void setSource(Sourceable source) {  
        this.source = source;  
    }  
}  


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


测试类

public class BridgeTest {  
      
    public static void main(String[] args) {  
          
        Bridge bridge = new MyBridge();  
          
        /*调用第一个对象*/  
        Sourceable source1 = new SourceSub1();  
        bridge.setSource(source1);  
        bridge.method();  
          
        /*调用第二个对象*/  
        Sourceable source2 = new SourceSub2();  
        bridge.setSource(source2);  
        bridge.method();  
    }  
}  


output:

this is the first sub!
this is the second sub!

这样,就通过对Bridge类的调用,实现了对接口Sourceable的实现类SourceSub1和SourceSub2的调用


利用此实现的JDBC连接原理图




设计模式——桥接模式(BridgeMode)

要想正确理解设计模式,首先必须明确它是为了解决什么问题而提出来的。 设计模式学习笔记 ——Shulin 转载请注明出处:http://blog.csdn.net/zhshulin ...
  • u012909091
  • u012909091
  • 2014年01月06日 22:54
  • 2098

跟着实例学习设计模式(9)-桥接模式bridge(结构型)

桥接模式属于结构型设计模式。 设计意图:将抽象部分与实现部分分离,使它们都可以独立的变化。 一看到设计意图,大家可能有些发懵,我们看到的继承和接口不都是抽象和实现分离的吗?尤其是接口和抽象类都是这样的...
  • andy_gx
  • andy_gx
  • 2015年07月15日 00:13
  • 1844

设计模式总结之Bridge Pattern(桥接模式)

将抽象部分与它的实现部分分离,使它们都可以独立地变化。
  • cooldragon
  • cooldragon
  • 2016年08月11日 00:48
  • 3642

桥接模式(Bridge)

桥接模式(Bridge),将抽象部分与它的实现部分分离,使它们都可以独立地变化。对于模式中描述的抽象与它实现分离,这并不是说,让抽象类与派生类分离,因为这没有任何意义。实现指的是抽象类和它的派生类用来...
  • fly_yr
  • fly_yr
  • 2013年02月06日 21:09
  • 2894

IOS设计模式浅析之桥接模式(Bridge)

引言   在项目开发中,我们会遇到这样的一种场景:某些类型由于自身的逻辑,往往具有两个或多个维度的变化,比如说大话设计模式书中所说的手机,它有两个变化的维度:一是手机的品牌,可能有三星、苹果等;...
  • cctvzxxz1
  • cctvzxxz1
  • 2014年10月15日 20:51
  • 3332

C++桥接模式详解--设计模式(7)

桥接模式的产生原因:          总结面向对象实际上就两句话:一是松耦合(Coupling),二是高内聚(Cohesion)。面向对象系统追求的目标就是尽可能地提高系统模块内部的内聚(Cohes...
  • fanyun_01
  • fanyun_01
  • 2016年06月27日 10:35
  • 1665

浅谈JAVA设计模式之——桥接模式(Bridge)

一、概述 将抽象部分与它的实现部分分离,使它们都可以独立地变化。 二、适用性 1.你不希望在抽象和它的实现部分之间有一个固定的绑定关系。 例如这种情况可能是因为,在程序运行时刻实现部分应可以被选择或者...
  • l1028386804
  • l1028386804
  • 2015年05月03日 12:25
  • 5271

我所理解的设计模式(C++实现)——桥模式(Bridge Pattern)

桥模式,其作用就是让抽象与实现相分离,让两者都能够各自变化。 举例来说吧,画图,我可以画矩形,圆,三角形等等,在哪里画呢?我可以在pdf上画,也可以在doc上面画。画什么图和在哪里画都是可以独立变化...
  • LCL_data
  • LCL_data
  • 2013年03月23日 16:11
  • 5274

JAVA设计模式之 桥接模式【Bridge Pattern】

一、概述 将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式,又称为柄体(Handle and Body)模式。二、适用场景 处理多维度变化。 ...
  • l416112167
  • l416112167
  • 2015年03月06日 17:43
  • 3072

IOS 设计模式 桥接模式(bridge)

转自:http://www.cnblogs.com/eagle927183/p/3483890.html 引言   在项目开发中,我们会遇到这样的一种场景:某些类型由于自身的逻辑,往往具有两个或多...
  • lcg910978041
  • lcg910978041
  • 2016年04月23日 21:12
  • 483
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:10 桥接模式(Bridge)
举报原因:
原因补充:

(最多只允许输入30个字)