【结构型】Bridge模式
2016-05-25 12:05
375 查看
桥接模式是为了将对象的抽象与实现分离,使得它们可以独立变化。简简单单的一句话,却已经是站在了更高抽象层面上来看待、设计、解决问题。平常我们多是对具体问题进行分析、抽象,然后就开始设计,这对多数情况下基本完全够用,毕竟实际项目中的功能模块都是找一“最优解的"实现来解决掉问题,把功能设计出来即可。这种情况下的结构关系图参考如下:
Bridge模式编码结构参考
namespace bridge { class IImpl; class ITarget { public: virtual void doSomething() = 0; // some code here........ protected: IImpl* getImpl() { return _impl; } private: IImpl* _impl; };//class ITarget class ConcreteTarget : public ITarget { public: virtual void doSomething() override { auto pImpl = this->getImpl(); if (nullptr != pImpl) { pImpl->realDoSomething(); } // some other code here........ } };//class ConcreteTarget class IImpl { public: virtual void realDoSomething() = 0; };//class IImpl class ConcreteImpl1 : public IImpl { public: virtual void realDoSomething() override { /* some code here........ */ } };//class ConcreteImpl1 class ConcreteImpl2 : public IImpl { public: virtual void realDoSomething() override { /* some code here........ */ } };//class ConcreteImpl2 }//namespace bridge
Bridge模式编码结构参考
相关文章推荐
- 实例解析Python的Twisted框架中Deferred对象的用法
- 浏览器兼容平台f2etest搭建详细记录
- SecureCRT 连数据库,启动tomcat操作命令
- LVS practice
- 网络的基本配置
- Windows的程序性能分析和函数呼叫列表工具LTProf (Call Graph at Runtime)
- 浅谈802.1X认证
- 整理低版本ie兼容问题的解决方案
- 图的邻接表基本操作
- AndroidStudio查看方法具体实现(Open Implementation)
- javabean实体类对象转为Map类型对象的方法
- Docker intercontainer 网络解释
- Linux内核之数据双链表
- 安装 openSUSE Leap 42.1 之后要做的 8 件事
- 关于使用“大学生论文抄袭检测系统”的相关格式要求
- 代码比较器 Araxis Merge
- 使用MyBatis Generator自动创建代码(前言不允许有内容)
- 安装php-mq扩展
- 手机照片误删了能找回来吗
- LayoutINflater的inflate()