【设计模式】状态模式

概念

行为模式


类图


代码

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;
}
相关推荐
bkspiderx7 小时前
C++设计模式之创建型模式:抽象工厂模式(Abstract Factory)
c++·设计模式·抽象工厂模式
Chan167 小时前
【 设计模式 | 创建型模式 建造者模式 】
java·spring boot·设计模式·java-ee·intellij-idea·建造者模式
澄澈i8 小时前
设计模式学习[19]---单例模式(饿汉式/懒汉式)
学习·单例模式·设计模式
bkspiderx8 小时前
C++设计模式之创建型模式:工厂方法模式(Factory Method)
c++·设计模式·工厂方法模式
yujkss8 小时前
23种设计模式之【工厂方法模式】-核心原理与 Java实践
java·设计模式·工厂方法模式
风语者日志8 小时前
创建者模式:工厂方法模式
java·设计模式
new_daimond9 小时前
设计模式-责任链模式详解
java·设计模式·责任链模式
一个程序员(●—●)9 小时前
设计模式——结构型模式(下)
设计模式
new_daimond9 小时前
设计模式-迭代器模式详解
设计模式·迭代器模式