美文网首页
桥接模式 C++实现

桥接模式 C++实现

作者: 假程序员 | 来源:发表于2019-04-11 00:54 被阅读0次

桥接模式:将抽象部分与实现部分分离,使它们都可以独立的变化。
主要解决:在有多种可能会变化的情况下,用继承会造成类爆炸问题,扩展起来不灵活。
何时使用:实现系统可能有多个角度分类,每一种角度都可能变化。

//
//  main.cpp
//  bridge_pattern
//
//  Created by apple on 2019/4/11.
//  Copyright © 2019年 apple. All rights reserved.
//

#include <iostream>
using namespace std;

class ISport
{//运动接口
public:
    virtual ~ISport() {}
    virtual void do_sport(int time) = 0;
};

class run:public ISport
{//跑步类
public:
    void do_sport(int time)
    {
        cout<<"run "<<time<<" min"<<endl;
    }
};
class swim:public ISport
{//游泳类
public:
    void do_sport(int time)
    {
        cout<<"swim "<<time<<" min"<<endl;
    }
};
class fly:public ISport
{//飞行类
public:
    void do_sport(int time)
    {
        cout<<"fly "<<time<<" min"<<endl;
    }
};

class IBridge
{//桥接接口
public:
    virtual ~IBridge() {}
    virtual void do_sport() = 0;
};
class Client:public IBridge
{//桥接实体类,真实场景中可能存在多个桥接实体类
private:
    int time;
    ISport *sport = NULL;
public:
    Client(int time, ISport *sport)
    {
        this->time = time;
        this->sport = sport;
    }
    ~Client()
    {
        delete sport;
        sport = NULL;
    }
    void do_sport()
    {
        sport->do_sport(time);
    }
};



int main(int argc, const char * argv[]) {
    IBridge *bridge = NULL;
    
    bridge = new Client(10, new run());
    bridge->do_sport();
    delete bridge;
    
    bridge = new Client(8, new swim());
    bridge->do_sport();
    delete bridge;
    
    bridge = new Client(6, new fly());
    bridge->do_sport();
    delete bridge;
    return 0;
}
run 10 min
swim 8 min
fly 6 min
Program ended with exit code: 0

相关文章

  • 桥接模式 C++实现

    桥接模式:将抽象部分与实现部分分离,使它们都可以独立的变化。主要解决:在有多种可能会变化的情况下,用继承会造成类爆...

  • 桥接模式(Bridge Pattern)

    桥接模式:使用桥接模式不只改变你的实现,也改变你的抽象。 桥接模式是将抽象和实现分离,使他们能够各自独立的变化。 ...

  • 设计模式之桥接模式

    设计模式之桥接模式 1. 模式定义 桥接模式又称柄体模式或接口模式,它是一种结构性模式。桥接模式将抽象部分与实现部...

  • 桥接模式C++

    合成/聚合复用原则 合成/聚合复用原则(CARP):尽量使用合成/聚合,尽量不用使用类继承(这是一种强耦合)。优先...

  • c++桥接模式

    1.桥接模式简介    桥接(Bridge)模式的定义如下:将抽象与实现分离,使它们可以独立变化。它是用组合关系代...

  • Java设计模式<桥接模式>

    Java设计模式<桥接模式> 意图 桥接模式就是把事物和其具体实现分开,使他们可以各自独立的变化。桥接的用意是:将...

  • Java设计模式——桥接模式

    Java设计模式之桥接模式 回顾 上一期分享了适配器模式,主要为了实现解耦 桥接模式 简介 桥接模式是对象的结构模...

  • 身为java开发人员,你知道桥接模式还能这样用吗?

    桥接模式 桥接模式定义: 桥接模式是将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式,...

  • Android中的桥接模式

    桥接模式的常见定义是抽象和实现的分离,实现抽象和实现的自由变化,在我看来,桥接模式的根本是实现同一个类或者...

  • iOS设计模式之桥接模式

    桥接模式 1、什么是桥接模式 将抽象部分与实现部分分离,使它们都可以独立的变化。 桥接模式一共有两个角色: 抽象角...

网友评论

      本文标题:桥接模式 C++实现

      本文链接:https://www.haomeiwen.com/subject/sdtziqtx.html