【设计模式】状态模式

概念

行为模式


类图


代码

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;
}
相关推荐
知识汲取者7 小时前
多 Agent 工作流:从概念到落地
状态模式
qq_297574678 小时前
设计模式系列文章(基础篇第 11 篇):模板方法模式——定义算法骨架,实现代码复用与流程统一
算法·设计模式·模板方法模式
zhoumeina9913 小时前
前端串行合成流程 + 每张图上传接口
前端·状态模式
狂人开飞机13 小时前
01. 工厂模式(Factory Pattern)
设计模式·c#
阿狸猿14 小时前
论软件设计模式及其应用
设计模式
workflower14 小时前
具身智能-三层结构
人工智能·设计模式·动态规划·软件工程·scrum
weixin_4713830315 小时前
preload,prefetch,preconnect
状态模式
我爱cope15 小时前
【Agent智能体10 | 反思设计模式-AI数据分析的可视化实战】
人工智能·设计模式·数据分析
老码观察15 小时前
设计模式实战解读(七):适配器模式——让不兼容的接口无缝协作
java·设计模式·适配器模式
前端不太难15 小时前
内存带宽、超长上下文与解码效率:AI推理的三大核心制约
人工智能·状态模式