状态模式
来源:互联网 发布:唱红歌 知党史的意义 编辑:程序博客网 时间:2024/05/29 11:14
#include <iostream>using namespace std;class Context;class State{public:virtual void handleState(Context* pobjContext) = 0;};class Context{public:Context() {}Context(State* pobjState) : m_pobjState(pobjState) {}void getState(){m_pobjState->handleState(this);}void setNextState(State* pobjState){m_pobjState = pobjState;}private:State* m_pobjState;};class ConcreteStateB;class ConcreteStateA : public State{public:ConcreteStateA() {}virtual void handleState(Context* pobjContext) override{if (pobjContext){cout << "state one" << endl;}}};class ConcreteStateB : public State{public:ConcreteStateB() {}virtual void handleState(Context* pobjContext) override{if (pobjContext){cout << "state two" << endl;pobjContext->setNextState(new ConcreteStateA());}}};int main(){Context* pobjContext = new Context(new ConcreteStateB());pobjContext->getState();pobjContext->getState();return 0;}总结:状态模式把一些与特定状态相关的行为局部化,减少类之间的耦合
0 0
- 状态模式(状态变化)
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 用 Hadoop 进行分布式并行编程, 第 1 部分 基本概念与安装部署
- Java多线程实现异步调用
- 继承和Protected修饰符(C#)
- 小试牛刀
- 浅析objective-c中的strong和weak
- 状态模式
- leetcode 329. Longest Increasing Path in a Matrix
- 第二周项目:用循环求
- Android动画--Activity过渡动画 Transition
- 用 Hadoop 进行分布式并行编程, 第 2 部分 程序实例与分析
- CentOS 6.5结合busybox完成自制Linux系统及远程登录和nginx安装测试
- 设计模式——之单例模式(饿汉模式)
- C#旅途~登录框
- 作业day13——IO流与文件