设计模式读书笔记:Bridge(桥接)

原创 2015年07月10日 15:53:47

意图:

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

结构图:来自 《23种设计模式 - 郗晓勇》


实现:https://github.com/panshiqu/patterns/tree/master/Bridge

Implementor

namespace NS_BRIDGE {

class Implementor {
public:
	Implementor() {}
	virtual ~Implementor() {}
	virtual void operationImp(void) = 0;
};

} /* namespace NS_BRIDGE */
ConcreteImplementorA

#include "Implementor.h"
#include <iostream>

namespace NS_BRIDGE {

class ConcreteImplementorA : public Implementor
{
public:
	ConcreteImplementorA() {}
	virtual ~ConcreteImplementorA() {}
	virtual void operationImp(void)
	{
		std::cout << "ConcreteImplementorA" << std::endl;
	}
};

} /* namespace NS_BRIDGE */
ConcreteImplementorB

#include "Implementor.h"
#include <iostream>

namespace NS_BRIDGE {

class ConcreteImplementorB : public Implementor
{
public:
	ConcreteImplementorB() {}
	virtual ~ConcreteImplementorB() {}
	virtual void operationImp(void)
	{
		std::cout << "ConcreteImplementorB" << std::endl;
	}
};

} /* namespace NS_BRIDGE */
Abstraction

#include "Implementor.h"

namespace NS_BRIDGE {

class Abstraction {
public:
	Abstraction(Implementor *imp) : _imp(imp) {}
	virtual ~Abstraction() {}
	virtual void operation(void)
	{
		_imp->operationImp();
	}

private:
	Implementor *_imp;
};

} /* namespace NS_BRIDGE */
main

#include "Bridge/Abstraction.h"
#include "Bridge/ConcreteImplementorA.h"
#include "Bridge/ConcreteImplementorB.h"
using namespace NS_BRIDGE;
int main(void)
{
	// 可以使用Abstract Factory创建实现
	// 如此以来这段代码将不依赖或需要知道任何实现
	ConcreteImplementorA ia;
	Abstraction abs(&ia);
	abs.operation();
}
附加:

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

《设计模式解析》读书笔记之Bridge Pattern(桥接模式)

Bridge Pattern桥接模式 一Bridge Pattern简介 1 定义 2 Bridge Pattern通用结构 二Bridge Pattern关键特征 三代码 1 UML图 2 Clie...

设计模式读书笔记(四) Bridge(桥梁)模式

一、模式介绍GOF 在《设计模式》中给桥梁模式的定义为:将抽象部分与它的实现部分分离,使它 们都可以独立地变化。这里的抽象部分和实现部分不是我们通常认为的父类与子类、接口与 实现类的关系,而是组合关系...

GOF-设计模式之BRIDGE(桥接)

概述本文继GOF理解系列——关于桥接模式(BRIDGE)的理解。本文将整理笔者在学习GOF一书中对BRIDGE设计模式的理解。同时,用Java重写示例代码并编写测试用例测试。代码以及UML图整理在了h...

《设计模式》之Java解读--桥接Bridge

1、核心意图:将抽象部分和实现部分分离,使它们都可以独立的变化。该模式的目标是通过把高层的抽象和底层的实现分开,分别构建自己的类层次结构,并通过实现部分的接口将两部分进行桥接,从而达到高层抽象和底层实...
  • dp1234
  • dp1234
  • 2011年04月22日 14:49
  • 728

《GOF设计模式》—桥接(BRIDGE)—Delphi源码示例:可移植的用户界面

 示例:可移植的用户界面 说明:   代码:   unit uWindow;   interface   uses Windows,SysUtils,Classes,Grap...

设计模式C++描述----09.桥接(Bridge)模式

一. 举例 N年前: 计算机最先出来时,软件和硬件是一绑在一起的,比如IBM出了一台电脑,上面有一个定制的系统,假如叫 IBM_Win,这个IBM_Win系统当然不能在HP电脑上运行,同样HP...

设计模式(7)——Bridge模式(桥接)

Bridge模式的作用 Bridge模式就是把抽象部分与其实现部分分离,使它们都可以独立地变化。 Bridge模式的适用性 1. 不希望在抽象和它的实现部分之间有一个固定的绑定关系。 2....

Java设计模式之从[暗黑破坏神"装备镶嵌宝石系统"]分析桥接(Bridge)模式

暴雪公司著名的游戏暗黑破坏神中,有一个经典的"镶嵌系统",例如,可以为武器镶嵌红宝石、蓝宝石来得到攻击特效或攻击力加成,为防具镶嵌红宝石、蓝宝石来得到攻击特效或者防御力的加成。不同的宝石加在不同的装备...
  • Froser
  • Froser
  • 2014年04月07日 15:09
  • 1756

设计模式:Bridge(桥接)模式

Bridge模式:桥接模式 模式概述: 低耦合和高内聚一直是面向对象设计所追求的重要目标。 耦合性:也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就...

设计模式C++描述----09.桥接(Bridge)模式 .

一. 举例 N年前: 计算机最先出来时,软件和硬件是一绑在一起的,比如IBM出了一台电脑,上面有一个定制的系统,假如叫 IBM_Win,这个IBM_Win系统当然不能在HP电脑上运行,同样HP...
  • ajioy
  • ajioy
  • 2012年05月08日 16:39
  • 2345
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:设计模式读书笔记:Bridge(桥接)
举报原因:
原因补充:

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