/**************************************************************************************
Bridge 模式又叫做桥接模式,是构造型的设计模式之一。Bridge模式基于类的最小设计原则,通过使用封装,
聚合以及继承等行为来让不同的类承担不同的责任。它的主要特点
是把抽象(abstraction)与行为实现(implementation)分离开来,
从而可以保持各部分的独立性以及应对它们的功能扩展。
适用于:
桥接模式(Bridge Pattern)是将抽象部分与实现部分分离(解耦合),使它们都可以独立的变化。
实现方法:
创建一个抽象类定义接口,然后不同的子类去实现此接口
  然后定义一个使用此功能函数的类,在这个类中通过传递来的指针对象去操作它的函数
  这里的桥接桥接的都是同一个函数(所以才会叫桥接)
通过中间人搭桥(车这个中间人)
**************************************************************************************/
#include <iostream>
using namespace std;
//需要把“安装发动机”这个事,做很好的分解;把抽象 和 行为实现 分开
//发动机是一个名词语,专门抽象成一个类;类中含有一个成员函数,安装发动机
class Engine;
class Car
{
public:
Car(Engine *pengine)
{ m_engine = pengine;}
virtual void installEngine() = 0;
protected:
Engine *m_engine;
};
class Engine
{
public:
virtual void installEngine() = 0;
};
class Engine4000 : public Engine
{
public:
virtual void installEngine()
{ cout << "安装发动机 Engine4000" << endl;}
};
class Engine3500 : public Engine
{
public:
virtual void installEngine()
{ cout << "安装发动机 Engine 3500" << endl;}
};
class BMW7 :public Car
{
public:
BMW7(Engine *p) : Car(p)
{ }
virtual void installEngine()//注意车的安装  和 发动机的安装 不同之处
{
cout << "BMW7 ";
m_engine->installEngine();
}
protected:
private:
};
void main()
{

Engine4000 *e4000 = new Engine4000; //创建一个发动机,然后返回发动机的基类指针
BMW7 *bmw7 = new BMW7(e4000); //然后将此指针传递给,想要安装此发动机的车,基类和派生类中都初始化此发动机
bmw7->installEngine();//然后车子在调用安装发动机(在此函数中完成发动机的安装(在自己的地盘操纵别人的函数))

delete bmw7;
delete e4000;
system("pause");

}

来源:传智博客---王保明

设计模式---桥接模式(C++实现)相关推荐

  1. Python设计模式-桥接模式

    Python设计模式-桥接模式 基于Python3.5.2,代码如下 #coding:utf-8class Shape():name = ""param = "" ...

  2. 【学习笔记】ABAP OOD设计模式 - 桥接模式

    ABAP OOD设计模式 - 桥接模式 整理转自-<SAP ABAP 面向对象程序设计(原则.模式及实践)> 桥接模式又称为桥梁模式,在程序开发中,采用不同的维度分解一系列对象,然后采用组 ...

  3. 跟着ZHONGHuan学习设计模式--桥接模式

    转载请注明出处! ! !http://blog.csdn.net/zhonghuan1992 全部配套代码均在github上:https://github.com/ZHONGHuanGit/Desig ...

  4. 2.设计模式-桥接模式

    文章目录 一.使用场景 二.实现方法 三.优势与劣势 四.经典案例 本文笔记来自于: 狂神的设计模式 桥接模式是将抽象部分与它的实现部分分离,使它们都可以独立地变化.它是一种对象结构模型,又称为柄体( ...

  5. 设计模式--桥接模式(Bridge)

    设计模式–桥接模式(Bridge) 1.定义 桥接模式:将抽象部分与它的实现部分分离,使它们可以独立地变化. 2.实例 设想如果要绘制矩形.圆形.椭圆.正方形,我们至少需要4个形状类,但是如果绘制的图 ...

  6. linkin大话设计模式--桥接模式

    linkin大话设计模式--桥接模式 桥接模式是一种结构化模式,他主要应对的是:由于实际的需要,某个类具有2个或者2个以上维度的变化,如果只是使用继承将无法实现功能,或者会使得设计变得相当的臃肿.我们 ...

  7. 23种设计模式——桥接模式

    文章目录 23种设计模式--桥接模式 1.桥接模式概述 2.桥接模式结构 3.桥接模式的实现 4.桥接模式的注意事项和细节 23种设计模式--桥接模式 1.桥接模式概述 桥接模式介绍 桥接(Bridg ...

  8. 设计模式——桥接模式实验报告

    目录 设计模式--桥接模式实验报告 一.实验题目 二.所用模式结构视图 三.本实例类图 四.实例实现代码 1.抽象消息类 2.普通消息类 3.加急消息类 4.特急消息类 5.实现发送消息的统一接口: ...

  9. Java设计模式-桥接模式 理论代码相结合

    继Java设计模式-装饰器模式后的桥接模式出来了,感兴趣的话,就来看一看吧. 会了就当复习丫,不会来一起来看看吧. 很喜欢一句话:"八小时内谋生活,八小时外谋发展". 如果你也喜欢 ...

  10. 结合JDK源码看设计模式——桥接模式

    前言: 在我们还没学习框架之前,肯定都学过JDBC.百度百科对JDBC是这样介绍的[JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Jav ...

最新文章

  1. 多线程 -- 实现秒抓
  2. linux安全策略与实例pdf,实验一:Linux用户管理与安全策略.pdf
  3. 6.非关系型数据库(Nosql)之mongodb:集群(主从复制)
  4. PHP常用方法很有意义的博客网址
  5. 基于.NET下的人工智能系列专题|.NET下的人工智能系列专题|用Keras.NET 做一个图像识别的训练...
  6. Eclipse C/C++开发环境搭建
  7. 通用智能传感集线器(Sensorhub)介绍
  8. DeepMindVGG提出基于集合的人脸识别算法GhostVLAD,精度远超IJB-B数据集state-of-the-art...
  9. 门槛,才是做生意持久盈利的基础
  10. 失去老罗,张一鸣的坚果手机多了什么?
  11. 测测你写了多少行代码【转】
  12. Condition梳理和总结
  13. PMI第七章 挣值分析
  14. 看董事长陈睿发言谈B站变化,我与B站共成长
  15. python爬取京东商品代码_Python简单爬取京东商品列表
  16. Ringbuffer 范例
  17. poj1163数字三角形动态规划
  18. ADDS:使用 PowerShell 创建 OU 结构
  19. Win11 + wsl2 + xfce4实现可视化ubuntu的问题
  20. 人工智能AI技术如何在视频领域应用落地

热门文章

  1. 1013 数素数 (20 分)—PAT (Basic Level) Practice (中文)
  2. L1-035 情人节 (15 分)—团体程序设计天梯赛
  3. 软件编程常用数据类型打印print
  4. 单片机中断函数的编写
  5. Spring Boot的filter简单使用
  6. 机器学习实战Ch02: k-近邻算法
  7. 推荐《Office SharePoint Server 2007案例实战开发》
  8. LVS详解(六)——LVS DR模式实战
  9. naivcat 破解安装教程(永久)
  10. DelegatingFilterProxy详解