设计模式5--bridge(桥模式)

bridge(桥模式)

bridge.png

基类Implementor,定义一些操作接口

class Implementor
{
public:
    virtual void operationImp()=0;
    ~Implementor(){}
};

基类Abstraction有指向Implementor的多态指针,以及自己的操作接口

class Abstraction
{
public:
    virtual void option()=0;
    ~Abstraction(){}
    Abstraction(Implementor* _imp):imp(_imp){}
protected:
    Implementor* imp;

};

ConcreateImplementorA继承Implementor并实现接口

class ConcreateImplementorA : public Implementor
{
public:
    virtual void operationImp()
    {
        cout<<"A option"<<endl;
    }
};

ConcreateImplementorB继承Implementor并实现接口

class ConcreateImplementorB : public Implementor
{
public:
    virtual void operationImp()
    {
        cout<<"B option"<<endl;
    }
};

RefinedAbstraction继承Abstraction实现接口,RefinedAbstraction可以调用自己的操作以及Abstraction的操作

class RefinedAbstraction : public Abstraction{
public:
    RefinedAbstraction(Implementor* _imp):Abstraction(_imp){}
    virtual void option()
    {
        imp->operationImp();
        cout<<"RefinedAbstraction option"<<endl;
    }
};
#include <iostream>
using namespace std;
int main(int argc, char const *argv[]) {
    ConcreateImplementorA* cona = new ConcreateImplementorA();
    RefinedAbstraction* rea = new RefinedAbstraction(cona);
    rea->option();
    return 0;
}
bridge.png
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. 设计模式简介 课程目标 理解松耦合设计思想 掌握面向对象设计原则 掌握重构技法改善设计 掌握GOF 核心设计...
    一般的路人丙阅读 2,156评论 0 2
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 179,263评论 25 708
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,641评论 30 472
  • 想识枫林醉 共乘冬夜車 同居江河畔 无声恨别离 恨别离 长相思, 一曲高歌诵佳人 勿忘我 再回首 一首相思恨别离
    默失声阅读 192评论 0 2
  • 文 / 艺文小舍 那年的天特别蓝 是那种高远清澈的蓝 在澄蓝的天空下 有你散发着光芒的青涩笑颜 那年的你特别美 是...
    艺文小舍阅读 691评论 47 71

友情链接更多精彩内容