设计模式-结构型-bridge桥接

转载 2013年12月06日 09:38:17

1.意图

    将抽象部分与它的实现部分分离,使他们都可以独立的变化。

2.别名

   handle/body

3.动机

   当一个抽象可能有多个实现时,通常用继承来协调它们。抽象类定义对该抽象的接口,而具体的子类则用不同方式加以实现。但是此方法有时不够灵活。继承机制将抽象部分与它的实现部分固定在一起,使得难以对抽象部分和实现部分独立的进行修改、扩充和重用。

4.适用性

  你不希望在抽象和它的实现部分之间有一个固定的绑定关系。例如这种情况可能是因为在程序运行时刻实现部分应可以选择或者切换

类的抽象以及它的实现都应该可以通过生成子类的方法加以扩充。这时bridge模式使你可以对不同的抽象接口和实现部分进行组合,并分别对他们进行扩充

对一个抽象的实现部分的修改应对客户不产生影响,即客户的代码不必重新编译。

(c++)你想对客户完全隐藏抽象的实现部分。在C++中,类的表示在类接口中是可见的

正如在意图一节的第一个类图中所示的那样,有许多类要生成。这样一种类层次结构说
明你必须将一个对象分解成两个部分。R u m b a u g h称这种类层次结构为“嵌套的普化”
(nested generalizations)。
• 你想在多个对象间共享实现(可能使用引用计数),但同时要求客户并不知道这一点。
一个简单的例子便是C o p l i e n的S t r i n g类[ C o p 9 2 ],在这个类中多个对象可以共享同一个字
符串表示( S t r i n g R e p)。

 

http://www.cnblogs.com/houleixx/archive/2008/02/23/1078877.html

相关文章推荐

设计模式之类对象结构型 — BRIDGE (桥接)模式

意图 将抽象部分与他的实现部分分离,使他们都可以独立的变化 实现参考我的这篇文章(点这里),之前已经总结过了,就不重复了。 注意:之前仅仅是对代码依赖性的考虑,这次是在之前的基础上增加了控制不同...

设计模式之结构型模式(一)-----桥接(bridge)模式

概述: 在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维度的变化”?如何利用面向对象的技术来使得该类型能够轻松的沿着多个方向进行变化,而又不引入额外的复杂度?这...

“设计模式”学习之五:桥接、外观、享元与代理(结构型)

一、桥接(Bridge,别名“Handle/Body”) 1、引言 我们一般的理解是:基类定义抽象接口;子类继承并实现接口。而桥接则是利用组合引用的方式,将抽象接口类Abstaction的功能实现...

结构型模式之桥接BRIDGE

推荐先看《敏捷开发:原则、模式与实例》了解基本开发原则一、意图将抽象部分同其实现部分分离开来,使其可以独立变化。二、图解 上图为了实现多平台应用,使用继承分别定义了X平台和PM平台的两个window...

结构型模式-桥接(bridge)

桥接将抽象部分与它的实现部分分离,使它们都可以独立地变化。实例main.cc:#include #include "nike_shoe.h" #include "asics_shoe.h" #inc...

面向对象设计模式之Bridge桥接模式(结构型)

问题分析:假如我们需要开发一个同时支持PC和手机的坦克游戏,游戏在PC和手机上功能都一样,都有同样的类型,面临同样的功能需求变化,比如坦克可能有多种不同的型号:T50,T75,T90..对于其中的坦克...
  • yja886
  • yja886
  • 2012-02-24 10:38
  • 2198

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

桥接模式属于结构型设计模式。 设计意图:将抽象部分与实现部分分离,使它们都可以独立的变化。 一看到设计意图,大家可能有些发懵,我们看到的继承和接口不都是抽象和实现分离的吗?尤其是接口和抽象类都是这样的...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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