当前位置: 首页 > news >正文

做水果网站特点分析报告成都外贸seo

做水果网站特点分析报告,成都外贸seo,wordpress+HTML5游戏,江苏经营性网站备案文章目录 概述定义结构图 2.代码示例小结 概述 定义 状态模式(state pattern)的定义: 允许一个对象在其内部状态改变时改变它的行为。 对象看起来似乎修改了它的类。 状态模式就是用于解决系统中复杂对象的状态转换以及不同状态下行为的封装问题.。状态模式将一个对象的状态…

文章目录

  • 概述
    • 定义
    • 结构图
  • 2.代码示例
  • 小结

概述

定义

状态模式(state pattern)的定义: 允许一个对象在其内部状态改变时改变它的行为。 对象看起来似乎修改了它的类。

状态模式就是用于解决系统中复杂对象的状态转换以及不同状态下行为的封装问题.。状态模式将一个对象的状态从该对象中分离出来,封装到专门的状态类中(用类来表示状态) ,使得对象状态可以灵活变化。

结构图

状态模式结构图

  • 上下文信息类(Context):实际上就是存储当前状态的类,对外提供更新状态的操作。在该类中维护着一个抽象状态接口State实例,这个实例定义当前状态.

  • 抽象状态类(State):可以是一个接口或抽象类,用于定义声明状态更新的操作方法有哪些,具体实现由子类完成。

  • 具体状态类(StateA 等):实现抽象状态类定义的方法,根据具体的场景来指定对应状态改变后的代码实现逻辑。

2.代码示例

// 抽象状态类
class State {
public:virtual void Handle(std::string input, std::shared_ptr<State> &currentState) = 0;
};// 具体状态A
class StateA : public State {
public:void Handle(std::string input, std::shared_ptr<State> &currentState) override {if (input == "A") {std::cout << "StateA: Handle input A." << std::endl;} else if (input == "B") {std::cout << "StateA: Transition to StateB." << std::endl;currentState = std::make_shared<StateB>();} else {std::cout << "StateA: Invalid input." << std::endl;}}
};// 具体状态B
class StateB : public State {
public:void Handle(std::string input, std::shared_ptr<State> &currentState) override {if (input == "B") {std::cout << "StateB: Handle input B." << std::endl;} else if (input == "C") {std::cout << "StateB: Transition to StateC." << std::endl;currentState = std::make_shared<StateC>();} else {std::cout << "StateB: Invalid input." << std::endl;}}
};// 具体状态C
class StateC : public State {
public:void Handle(std::string input, std::shared_ptr<State> &currentState) override {if (input == "C") {std::cout << "StateC: Handle input C." << std::endl;} else if (input == "A") {std::cout << "StateC: Transition to StateA." << std::endl;currentState = std::make_shared<StateA>();} else {std::cout << "StateC: Invalid input." << std::endl;}}
};// 上下文类,维护当前状态并执行请求
class Context {
private:std::shared_ptr<State> currentState;
public:Context(std::shared_ptr<State> initialState) : currentState(initialState) {}void Request(std::string input) {currentState->Handle(input, currentState);}
};

小结

这篇文章主要说了状态模式的定义,结构图,以及代码示例;这些都很常用的,不管是生活中,还是开发中,都是这样的。道理呢,往往很简单,看看代码示例,再想想现实生活,可能就理解了。OK,翻篇。

http://www.tj-hxxt.cn/news/48953.html

相关文章:

  • 郑州最好的男科医院是什么医院360手机优化大师下载
  • 做苗木网站哪家好怎么提高百度关键词排名
  • 湖南郴州市房价湖南seo推广软件
  • 做网站很累武汉网站设计
  • lamp网站怎么建设山东省住房和城乡建设厅
  • 做外包的网站有哪些问题最近一周的重大新闻
  • 网站制作方案设计hao123网址大全浏览器设为主页
  • 新闻网站个人可以做吗网站策划书模板
  • 做网站备案谁做自己怎么做一个网页
  • 网站建设需要什么研究条件站外seo是什么
  • wordpress后台紧致谷歌字体谷歌优化推广
  • 银川网站制作公司如何营销
  • 优质作文网站网络服务商在哪咨询
  • 网站只能在vps里打开宁德seo
  • 网站如何做品牌宣传佐力药业股票
  • 东莞商城网站推广建设seo怎么优化武汉厂商
  • 南京做网站具体需要多少钱海南seo快速排名优化多少钱
  • 有关建筑网站建设方案免费外链生成器
  • 网站颜色搭配技巧alexa全球网站排名分析
  • 题库小程序源码郑州网站关键词优化公司
  • 网站怎么做成二维码新闻头条今天最新消息
  • css网站布局原码最有效的推广方式
  • wordpress集成vue优化seo是什么意思
  • 网站短信验证码怎么做关键词在线听免费
  • 中国住房和城乡建设部网站企业网站建设需求分析
  • 万泉河网站建设最近新闻内容
  • 做外贸必须建网站吗搜索引擎排名优化seo
  • 私人设计网站推荐网络营销策划方案ppt
  • 沈阳网站开发网站统计哪个好用
  • h5制作成品seo研究协会