C++设计模式——Bridge模式
2017-07-11 21:33
369 查看
关于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(){} }; //不同的实现方法A class AbstractionImpA :public AbstractionImp { public: ~AbstractionImpA(){} AbstractionImpA(){} void Operation() { cout << "AbstractionImpA Operation()!\n"; } }; //不同的实现方法B class 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; }
相关文章推荐
- [GoF设计模式]Bridge模式和Template模式的C++实现
- C++设计模式之桥接模式(Bridge)
- C++设计模式之十二--Bridge桥梁模式
- 设计模式C++学习笔记之十一(Bridge桥梁模式)
- C++ Bridge 设计模式
- (Boolan)C++设计模式 <六> ——桥模式(Bridge)
- 设计模式(c++)笔记之六(Bridge模式)
- 我所理解的设计模式(C++实现)——桥模式(Bridge Pattern)
- C++ Bridge设计模式
- 常见设计模式的解析和实现(C++)之七-Bridge模式
- 设计模式C++学习笔记之十一(Bridge桥梁模式)
- 设计模式C++学习笔记之十一(Bridge桥梁模式)
- 设计模式C++学习笔记之二(Bridge桥梁模式)
- c++ 设计模式之桥接模式(Bridge)
- 设计模式C++学习笔记之十一(Bridge桥梁模式)
- C++设计模式之Bridge模式
- C++设计模式-Bridge桥接模式
- C++设计模式之七:Bridge(桥接器)
- C++设计模式-Bridge桥接模式
- 常见设计模式的解析和实现(C++)之七-Bridge模式