美文网首页C++设计模式程序员
【C++设计模式】桥接模式

【C++设计模式】桥接模式

作者: 小鱼号的代码日记 | 来源:发表于2021-02-06 17:50 被阅读0次
/*小鱼号的代码日志
 * c++ 设计模式
 *桥接模式
 * 将实现与抽象放在两个不同的类层次中
 * 使两个层次可以独立改变
 * 基于最小设计原则
 * 通过封装,聚合以及继承让不同的类承担
 * 不同的职责。主要特点是把抽象和行为实现
 * 分离开来
 * 保持各个部分的独立性以及应对他们功能的扩展
 */
#include<iostream>
using namespace std;

//行为实现的抽象类
class PhoneBrand
{
public:
    virtual void open() = 0;
    virtual void close() = 0;
    virtual void call() = 0;
};

class XiaomiPhone:public PhoneBrand
{
    virtual void open()
    {
        cout << "xiaomi phone open" << endl;
    }
    virtual void close()
    {
        cout << "xiaomi phone close" << endl;
    }
    virtual void call()
    {
        cout << "xiaomi phone call" << endl;
    }
};

class VivoPhone:public PhoneBrand
{
    virtual void open()
    {
        cout << "Vivo phone open" << endl;
    }
    virtual void close()
    {
        cout << "Vivo phone close" << endl;
    }
    virtual void call()
    {
        cout << "Vivo phone call" << endl;
    }
};

///桥接类
class Phone
{
public:
    Phone(PhoneBrand* brand)
    {
        m_brand = brand;
    }
private:
    PhoneBrand* m_brand;
public:
    void open() ///桥接 不同手机品牌的接口
    {
        m_brand->open();
    }
    void close()
    {
        m_brand->close();
    }
    void call()
    {
        m_brand->call();
    }
};

///抽象的定义
///折叠式的手机
class FoldePhone :public Phone
{
public:
    FoldePhone(PhoneBrand* brand)
        :Phone(brand)
    {
        cout << "FoldePhone " << endl;
    }
};

///旋转式的手机
class RotationPhone :public Phone
{
public:
    RotationPhone(PhoneBrand* brand)
        :Phone(brand)
    {
        cout << "RotationPhone " << endl;
    }
};
void testBridge()
{
    //获取手机(样式+品牌)
    //折叠式的小米手机
    Phone* pPhone = new FoldePhone(new XiaomiPhone);
    pPhone->open();
    pPhone->call();
    pPhone->close();
    //折叠式的vivo手机
    pPhone = new FoldePhone(new VivoPhone);
    pPhone->open();
    pPhone->call();
    pPhone->close();

    //旋转式的vivo手机
    pPhone = new RotationPhone(new VivoPhone);
    pPhone->open();
    pPhone->call();
    pPhone->close();
 }








相关文章

  • 设计模式-桥接模式

    设计模式-桥接模式 定义 桥接模式(Bridge Pattern)也称为桥梁模式、接口(Interface)模式或...

  • 【C++设计模式】桥接模式

  • 桥接模式

    设计模式:桥接模式(Bridge)

  • 设计模式——桥接模式

    设计模式——桥接模式 最近公司组件分享设计模式,然而分配给我的是桥接模式。就在这里记录我对桥接模式的理解吧。 定义...

  • 设计模式之桥接模式

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

  • 桥接模式

    介绍 桥接模式(Bridge Pattern) 也称为桥梁模式,是结构型设计模式之一。桥接模式的作用就是连接 "两...

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

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

  • 设计模式-桥接模式

    桥接模式介绍 桥接模式(Bridge Pattern)也称为桥梁模式,是结构型设计模式之一。顾名思义其与现实中的桥...

  • Android设计模式——桥接模式(七大结构型)

    1.桥接模式介绍 桥接模式(Bridge Pattern)也称为桥梁模式,是七大结构型设计模式之一。 2....

  • 2、桥接模式(结构型)

    第一次接触桥接模式是在刷面试题时,遇到问jdbc主要用到的设计模式是?桥接模式。 桥接模式(Bridge):将抽象...

网友评论

    本文标题:【C++设计模式】桥接模式

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