`
dominic6988
  • 浏览: 5982 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

设计模式之 - Bridge模式

阅读更多

 Bridge 模式是模式里面最难理解同时也是功能非常强大的一个模式, 下面我们就来谈一谈它的核心思想适用场合欢迎有兴趣的同行一起探讨补充。

 

设计模式一书中原话描述这一模式: 将抽象与其实现解耦,使它们可以独立的适应变化。

 

Bridge 模式要解决的问题是: 当一个抽象有不同实现的时候,它可以使抽象和实现相互独立的进行变化。

 

适用场合: 对业务逻辑进行分析找到变化的部分放在各自的抽象类中,在分析这些抽象类之间的关系,使其能够做到相互独立的类中包含变化,从而使未来发生变化的部分很小程度的或者不影响当前的代码。

 

简单理解该模式由一个抽象(包括其派生类)和一个实现组成。

 

 

看一个具体一点的例子:

 

比如说常见的画图实现

 

 

 

 

public abstract class Shape {
	
	protected AbstractDrawing myDrawing;
	
	abstract public void draw();
	
	Shape(AbstractDrawing drawing)
	{
		this.myDrawing = drawing;
	}
	
	protected void drawLine(double x1, double y1, double x2, double y2)
	{
		myDrawing.drawLine(x1, y1, x2, y2);
	}
	
	protected void drawCircle(double x, double y, double r)
	{
		myDrawing.drawCircle(x, y, r);
	}

}

 

public abstract class AbstractDrawing {
	abstract public void drawLine(double x1, double y1, double x2, double y2);
	abstract public void drawCircle(double x, double y, double r);
}

 

 

 

  • 大小: 6.7 KB
  • 大小: 52.6 KB
分享到:
评论
20 楼 wkcgy 2011-06-28  
http://www.jdon.com/designpatterns/bridge.htm讲的挺清楚的!bridge不仅对对象做了抽象而且还对对象的行为做了抽象!
19 楼 qyongkang 2011-06-28  
这个。。。。需要细化,太糊里糊涂了
18 楼 yaofaye 2011-06-24  
红叉叉 啊 红叉叉
17 楼 ocaicai 2011-06-23  
zean 写道
楼主发完贴就拆桥了。
不过我觉得抽象工厂比桥模式更难理解。


我的设计模式学习就是从工厂以及抽象工厂开始的,感觉还好吧!
16 楼 dominic6988 2011-06-23  
<div class="quote_title">aninfeel 写道</div>
<div class="quote_div">在不知不觉中大量使用过,但是当面试时被问起什么是设计模式时,或者与同事争吵时,还是要懂点理论的。</div>
<p> </p>
<p> 我是觉得设计模式真的是很好的实践,问题是我们遇到现实的问题时(假如让你来设计一个系统)能否恰当的去使用设计模式,好多事情都是纸上得来终觉浅绝知此事要躬行啊。</p>
<p>知道不一定会用,会用不一定能用好,不是做一次两个就能达到这个境界的,比如像炒股我不知道兄弟你是不是炒股,都知道在很低的时候进去在很高的时候出来,可是真正做到的有吗?很少的,上次听一个投资大师讲他也说要做到"高抛低吸"这理论谁不懂啊。</p>
15 楼 aninfeel 2011-06-23  
在不知不觉中大量使用过,但是当面试时被问起什么是设计模式时,或者与同事争吵时,还是要懂点理论的。
14 楼 dominic6988 2011-06-23  
<div class="quote_title">yunchow 写道</div>
<div class="quote_div">说实话,楼主讲的不是很清楚,应该有一大部分人看不太明白 <br><br>桥接最大的好处是可以防止类膨胀的,并且能更好的复用,增加后期的可维护性。。。。 <br><br>这些楼主没表达出来</div>
<p> </p>
<p> 补充的不错,这点是没有讲出来。</p>
13 楼 dominic6988 2011-06-23  
把图补上了
12 楼 dominic6988 2011-06-23  
<div class="quote_title">zean 写道</div>
<div class="quote_div">楼主发完贴就拆桥了。 <br>不过我觉得抽象工厂比桥模式更难理解。</div>
<p> </p>
<p>抽象工厂模式主要用于一系列关联的对像创建,且隐藏了创建细节。像Spring里面的IOC创建对像的时候用到了抽象工厂模式</p>
11 楼 dominic6988 2011-06-23  
云中苍月 写道
可以把《解析设计模式》上面的段落直接引用过来。

是设计模式解析上面的,不过我是看的书,不能直接复制。上面的是看完书的理解
10 楼 云中苍月 2011-06-23  
可以把《解析设计模式》上面的段落直接引用过来。
9 楼 yunchow 2011-06-23  
说实话,楼主讲的不是很清楚,应该有一大部分人看不太明白

桥接最大的好处是可以防止类膨胀的,并且能更好的复用,增加后期的可维护性。。。。

这些楼主没表达出来
8 楼 niu396212866 2011-06-23  
确实看不到图,不过应该不是很难理解吧
7 楼 nplw668 2011-06-23  
呵呵,看不到图,楼主的桥 不合格呀
6 楼 zean 2011-06-22  
楼主发完贴就拆桥了。
不过我觉得抽象工厂比桥模式更难理解。
5 楼 KimHo 2011-06-22  
LZ头像没挂
4 楼 terra_yuan 2011-06-22  
这是传说的桥接吗
3 楼 hi31sunny 2011-06-22  
是看不到图
2 楼 dominic6988 2011-06-22  
seagod.wong 写道
图全挂了。··

不会吧,看不到图吗?我自己看都能看到的啊。
1 楼 seagod.wong 2011-06-22  
图全挂了。··

相关推荐

    设计模式精解-GoF-23种设计模式解析--附C++源代码

    设计模式是软件工程中的一种最佳实践,用于解决在软件开发过程中常见的问题。这些模式是由Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides四位大师,通常被称为GoF(Gang of Four),在他们的经典著作...

    设计模式精解-GoF 23种设计模式解析附C++实现源码

    GoF(Gang of Four)所提出的23种设计模式,被认为是面向对象编程中最核心的设计原则之一。这些模式可以帮助开发者解决常见的编程问题,并提高代码的可复用性和可维护性。 #### 创建型模式 创建型模式关注的是对象...

    设计模式精解-GoF 23 种设计模式解析附 C++实现源码.pdf

    2.1 Bridge模式........................................................................................................................33 2.2 Adapter模式...................................................

    设计模式精解-GoF 23种设计模式解析附C++.pdf

    ### 设计模式精解——GoF 23种设计模式解析及C++实现 #### 0. 引言 设计模式作为面向对象编程的核心组成部分,是软件开发者在长期实践中总结出来的最佳实践。通过深入理解这些设计模式,我们可以更好地进行面向...

    java设计模式---诙谐易懂版

    根据给定文件内容,以下是关于Java设计模式的知识点说明: 1. 策略模式(Strategy Pattern)是一种行为设计模式,允许在运行时选择算法的行为。策略模式的意图是定义一系列算法,将每个算法封装起来,并使它们可以...

    设计模式精解-GoF 23种设计模式解析附C++实现源码.pdf

    GoF(Gang of Four)所提出的23种设计模式,被认为是面向对象编程中最核心的设计原则之一。这些模式可以帮助程序员解决常见的编程问题,并提高代码的可复用性和可维护性。 #### 创建型模式 创建型模式关注的是对象...

    设计模式---桥接模式

    桥接模式是一种结构型设计模式,它将抽象部分与实现部分分离,使它们可以独立进行变化。这种模式在软件工程中被广泛应用于处理组件之间的耦合问题,特别是当需要为同一抽象提供多种实现或者需要独立地改变它们时。 ...

    设计模式精解-GoF23种设计模式解析附C++实现源码

    设计模式是软件工程中的一种重要思想,它是在特定情境下,为解决常见问题而形成的一套最佳实践。GoF(Gang of Four)23种设计模式是软件开发中的经典,由Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides...

    设计模式精解-GoF 23种设计模式解析.pdf

    ### 设计模式精解——GoF 23种设计模式解析 #### 0. 引言 设计模式作为面向对象编程的重要组成部分,在软件工程领域扮演着至关重要的角色。本书《设计模式精解——GoF 23种设计模式解析》旨在深入浅出地介绍由...

    liferay-faces-bridge-impl-3.0.0-ga1.zip

    在Java这样的静态类型语言中,通常不直接支持鸭子类型,但可以通过某些设计模式或库来模拟这种行为,提高代码的灵活性和可扩展性。 【标签】"开源项目" 指出这两个压缩包文件都是开源的,这意味着它们的源代码可以...

    设计模式精解-GoF 23 种设计模式解析附 C++实现源码

    ### 设计模式精解—GoF 23种设计模式解析及C++实现源码 #### 0. 引言 设计模式作为一种重要的面向对象设计工具,在软件开发中扮演着至关重要的角色。本文旨在深入解析GoF(Gang of Four,四人组)提出的23种设计...

    Laravel开发-twig-bridge

    【Laravel 开发与 Twig Bridge】\n\n在 Laravel 框架的开发过程中,`Twig Bridge` 是一个重要的组件,它为 Laravel 提供了对 `Twig` 模板引擎的支持。`Twig` 是一种流行的 PHP 模板语言,由 SensioLabs 创建,其设计...

    pg194-axi-bridge-pcie-gen3.pdf

    AXI Bridge for PCI Express Gen3 Subsystem是一款专为FPGA设计的IP核,它提供了连接PCI Express(PCIe)Gen3接口与系统内部高级可扩展接口(AXI)总线的桥梁。该产品指南(PG194 v3.0)详细介绍了这款IP核的功能、...

    设计模式精解-GoF 23种设计模式解析c++.pdf

    《设计模式精解-GoF 23种设计模式解析c++.pdf》这份资料深入剖析了GoF(Gang of Four)所提出的23种设计模式,并提供了C++语言的具体实现,为读者提供了理论与实践相结合的学习路径。下面,我们将详细解读这份资料...

    C#设计模式-吕震宇

    设计模式(16)-Bridge Pattern 设计模式(15)-Facade Pattern 设计模式(14)-Flyweight Pattern C#设计模式(13)-Proxy Pattern C#设计模式(12)-Decorator Pattern C#设计模式(11)-Composite Pattern ...

    axi-ahb-apb-bridge.rar

    `axi-ahb-apb-bridge.rar`这个压缩包文件包含了关于这三种总线协议间转换接口的Verilog语言实现,这对于理解和设计SoC中的总线互连至关重要。 1. **AXI总线**:AXI是由ARM公司提出的高性能、高带宽的总线接口标准,...

Global site tag (gtag.js) - Google Analytics