C++设计模式——Bridge模式
来源:互联网 发布:sql 查询分析器 编辑:程序博客网 时间:2024/06/05 16:23
关于Bridge模式
Bridge模式,将抽象部分与它的实现部分分离,使得它们可以独立地变化。
往下讲之前插上以下这段话。总结面向对象实际上就两句话:一是松耦合,二是高内聚。面向对象系统追求的目标就是尽可能地提高系统模块内部的内聚、尽可能降低模块间的耦合。然而这也是面向对象设计过程中最难把握的部分。
Bridge模式,将系统分为两个相对独立的部分,一个是抽象部分,一个是实现部分。Bridge模式是将抽象和实现分别独立实现。使用组合的方式将抽象和实现彻底解耦,这样的好处是抽象和实现可以分别独立地变化,系统的耦合性也得到了很好的降低。
代码示例
// BridgePattern.cpp #include "stdafx.h"#include<iostream>using namespace std;//实现class AbstractionImp{public: virtual ~AbstractionImp(){} virtual void Operation() = 0;protected: AbstractionImp(){}};//不同的实现方法Aclass AbstractionImpA :public AbstractionImp{public: ~AbstractionImpA(){} AbstractionImpA(){} void Operation() { cout << "AbstractionImpA Operation()!\n"; }};//不同的实现方法Bclass AbstractionImpB :public AbstractionImp{public: ~AbstractionImpB() {} AbstractionImpB() {} void Operation() { cout << "AbstractionImpB Operation()!\n"; }};//抽象class Abstraction{public: virtual ~Abstraction(){} virtual void Operation() = 0;protected: Abstraction(){}};//提炼抽象,将抽象与实现桥接起来class RefinedAbstraction:public Abstraction{public: RefinedAbstraction(AbstractionImp* imp):_imp(imp){} ~RefinedAbstraction(){} virtual void Operation() { _imp->Operation(); }private: AbstractionImp* _imp;};int main(){ AbstractionImp* imp = new AbstractionImpA(); Abstraction* obj = new RefinedAbstraction(imp); obj->Operation(); system("pause"); return 0;}
阅读全文
0 0
- 设计模式13—Bridge设计模式
- C++设计模式——Bridge模式
- 学习:java设计模式—Bridge模式
- 设计模式----Bridge模式
- 设计模式:Bridge模式
- 设计模式----Bridge模式
- 设计模式 -- Bridge模式
- 设计模式-Bridge模式
- 【设计模式】bridge模式
- 设计模式----Bridge模式
- 设计模式--------Bridge模式
- 设计模式-Bridge模式
- 设计模式 - Bridge模式
- 设计模式--Bridge 模式
- 设计模式笔记——Bridge
- 设计模式13——Bridge设计模式
- 设计模式精解之——Bridge 模式
- 设计模式——桥梁模式(Bridge)
- 冒泡排序(C语言版本)
- 文件上传路径问题
- jquery 使用index()方法 出现的问题
- 使用javassist生成新类
- 2017017(期末)
- C++设计模式——Bridge模式
- 《面向对象程序设计-C++》学习笔记2
- ES的集群名字被谁改了?
- volley学习笔记四
- BZOJ 3262 陌上花开 树状数组套splay
- 2 Add Two Numbers
- 17.7.11 校内赛 【图论】【最大流】【SPFA】
- MySQL优化之expalin语句详解
- 一个细节问题:无法将类 com.tour.info.admin.service.TempService中的方法 indexZtemp应用到给定类型;