博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《设计模式》学习笔记——桥接模式
阅读量:4110 次
发布时间:2019-05-25

本文共 1445 字,大约阅读时间需要 4 分钟。

Bridge Pattern被称之为桥接模式,属于构造型模式。Bridge Pattern基于类的最小设计原则,通过使用封装、聚和以及继承等行为来让不同的类承担不同的责任。它的主要特点是把抽象类与行为实现分离开来,从而可以保持各个部分的独立性以及对应它们的功能扩展 。

Brige.h

#pragma once#include
#include
// 抽象接口class Engine{public: virtual void InstallEngine() = 0;private:protected:};// 具体引擎类class Engine4400CC:public Engine{public: virtual void InstallEngine() { std::cout << "Install Engine4400CC" << std::endl; }private:protected:};// 具体引擎类class Engine4500CC :public Engine{public: virtual void InstallEngine() { std::cout << "Install Engine4500CC" << std::endl; }private:protected:};// 抽象接口class Car{public: Car(Engine * engine):m_engine(engine){} virtual~Car() { delete m_engine; } virtual void InstallEngine() = 0;private: protected: Engine * m_engine;};// 具体实现类class WBM5:public Car{public: WBM5(Engine * engine) :Car(engine) {} virtual~WBM5() { } virtual void InstallEngine() { m_engine->InstallEngine(); }private:protected:};// 具体实现类class WBM6 :public Car{public: WBM6(Engine * engine) :Car(engine) {} virtual ~WBM6() { } virtual void InstallEngine() { m_engine->InstallEngine(); }private:protected:};class Brige{public: Brige() {}; ~Brige() {};};

 

Brige.cpp

#include "Brige.h"

 

mainTest.cpp

#include
#include"Brige.h"int main(void){ Engine* engine = new Engine4400CC; WBM6* wbm6 = new WBM6(engine); wbm6->InstallEngine(); delete wbm6; wbm6= new WBM6(new Engine4500CC); wbm6->InstallEngine(); delete wbm6; system("pause"); return 0;}

 

转载地址:http://rhmsi.baihongyu.com/

你可能感兴趣的文章
从山寨Spring中学习Spring IOC原理-自动装配注解
查看>>
实例区别BeanFactory和FactoryBean
查看>>
Spring后置处理器BeanPostProcessor的应用
查看>>
Spring框架的ImportSelector到底可以干嘛
查看>>
Mysql中下划线问题
查看>>
微信小程序中使用npm过程中提示:npm WARN saveError ENOENT: no such file or directory
查看>>
Xcode 11 报错,提示libstdc++.6 缺失,解决方案
查看>>
idea的安装以及简单使用
查看>>
Windows mysql 安装
查看>>
python循环语句与C语言的区别
查看>>
Vue项目中使用img图片和background背景图的使用方法
查看>>
vue 项目中图片选择路径位置static 或 assets区别
查看>>
vue项目打包后无法运行报错空白页面
查看>>
Vue 解决部署到服务器后或者build之后Element UI图标不显示问题(404错误)
查看>>
element-ui全局自定义主题
查看>>
facebook库runtime.js
查看>>
vue2.* 中 使用socket.io
查看>>
openlayers安装引用
查看>>
js报错显示subString/subStr is not a function
查看>>
高德地图js API实现鼠标悬浮于点标记时弹出信息窗体显示详情,点击点标记放大地图操作
查看>>