【设计模式】状态模式

概念

行为模式


类图


代码

cpp 复制代码
#include <iostream>

using namespace std;

class AudioPlayer;
class State {
public:
    ~State() = default;
    explicit State(AudioPlayer* audioPlayer) {
        player = audioPlayer;
    }

    virtual void ClickLock() = 0;
    virtual void ClickPlay() = 0;
    virtual void ClickNext() = 0;
    virtual void ClickPrevious() = 0;

protected:
    AudioPlayer* player;
};

class LockedState : public State {
public:
    void ClickLock() override {}
    void ClickPlay() override {}
    void ClickNext() override {}
    void ClickPrevious() override {}
};

class ReadyState : public State {};

class PlayingState : public State {};

class AudioPlayer {
public:

private:
    State* state;
};

int main(int argc, char *argv[]) {
    cout << "State pattern needs to be complemented." << endl;
    cout << "One cpp file cannot satisfy." << endl;

    return 0;
}
相关推荐
workflower2 天前
情境感知系统
人工智能·机器学习·设计模式·自然语言处理·机器人
咖啡八杯2 天前
设计模式中的原则
设计模式·接口隔离原则·里氏替换原则·开闭原则·合成复用原则·单一职责原则
安冬的码畜日常2 天前
【工欲善其事】深入理解 Node.js 带并发上限的异步任务批量执行逻辑
javascript·设计模式·node.js·ai编程·异步编程·并发执行
AI大法师2 天前
一个机场如何被做成 IP 场景:宝可梦机场的设计方法总结
大数据·人工智能·设计模式·新媒体运营
晚安code2 天前
干掉成山的 if-else:工厂造、策略选,一文讲透两个模式的配合
后端·设计模式
冰箱上的笑话3 天前
从 CORS 报错到两套方案选型:一份能直接抄的跨域复盘
状态模式·安全性测试·跨域
workflower3 天前
从幻觉,到现实
人工智能·深度学习·机器学习·设计模式·机器人
电子科技圈3 天前
第二代无线平台历久弥新,赋能物联网创新迭代
人工智能·嵌入式硬件·mcu·物联网·设计模式·硬件架构·iot
choumin3 天前
创建型模式——工厂方法模式
c++·设计模式·工厂方法模式·创建型模式
choumin3 天前
创建型模式——原型模式
c++·设计模式·原型模式·创建型模式