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

国内做焊接机器人平台网站网站整体优化

国内做焊接机器人平台网站,网站整体优化,有口碑的广告灯箱设计制作,广州市官网网站建设哪家好定义 允许一个对象在其内部状态改变时改变它的行为。从而使对象看起来似乎修改了其行为。 应用场景 在软件构建过程中,某些对象的状态如果改变,其行为也会随之,而发生变化,比如文档处于只读状态,其支持的行为和读写…

定义

允许一个对象在其内部状态改变时改变它的行为。从而使对象看起来似乎修改了其行为。

应用场景

  • 在软件构建过程中,某些对象的状态如果改变,其行为也会随之,而发生变化,比如文档处于只读状态,其支持的行为和读写状态支持的行为就可能完全不同。
  • 如何在运行时根据对象的状态来透明地更改对象的行为?而不会为对象操作和状态转化之间引入紧耦合?

结构

在这里插入图片描述

代码示例

//State.h
/****************************************************/
#ifndef STATE_H
#define STATE_H
#include <iostream>
using namespace std;
class Lamp;// 抽象状态类
class State 
{
public:// 析构函数virtual ~State() {}// 操作函数virtual void handle(Lamp& context) = 0;};// 具体状态类-开
class StateOn : public State 
{
public:// 操作函数virtual void handle(Lamp& context);};// 具体状态类-关
class StateOff : public State 
{
public:// 操作函数virtual void handle(Lamp& context);};// 灯
class Lamp
{
public:// 构造函数,默认状态关闭Lamp() : m_state(new StateOff()){}// 析构函数~Lamp();// 设置状态void setState(State* state);// 请求void request();private:State* m_state;
};// 操作函数
void StateOn::handle(Lamp& context) {cout << "当前状态:打开" << endl;cout << "执行操作:关闭" << endl;context.setState(new StateOff());
}// 操作函数
void StateOff::handle(Lamp& context) {cout << "当前状态:关闭" << endl;cout << "执行操作:打开" << endl;context.setState(new StateOn());
}// 析构函数
Lamp::~Lamp() {if (m_state) {delete m_state;m_state = nullptr;}
}// 设置状态
void Lamp::setState(State* state) {if (m_state) {delete m_state;m_state = nullptr;}m_state = state;
}// 请求
void Lamp::request() {m_state->handle(*this);
}#endif
//test.cpp
/****************************************************/
#include "State.h"int main()
{Lamp lamp;lamp.request(); // 操作灯lamp.request(); // 操作灯return 0;
}

运行结果
在这里插入图片描述

要点总结

  • State模式将所有与一个特定状态相关的行为都放入一个State的子类对象中,在对象状态切换时,切换相应的对象;但同时维持State的接口,这样实现了具体操作与状态转换之间的解耦。
  • 为不同的状态引入不同的对象使得状态转换变得更加明确,而且可以保证不会出现状态不一致的情况,因为转换是原子性的——即要么彻底转换过来,要么不转换。
  • 如果State对象没有实例变量,那么各个上下文可以共享同一个State对象,从而节省对象开销。
http://www.15wanjia.com/news/51969.html

相关文章:

  • 外国法院网站建设seo关键词排名系统
  • 上海网站制作多少钱站长统计app进入网址
  • 论坛网站建设需要多少钱网上推广怎么收费
  • 小程序致美发型设计seo黑帽教学网
  • 万网主机 网站重做黑科技引流推广神器
  • 网页回合制游戏排行榜长沙优化网站
  • 帮别人做网站的公司是外包吗公司网站推广技巧
  • 做钓鱼网站盗游戏号会被判刑吗网站内容优化怎么去优化呢
  • 网站开发支持二次开发广告营销策略有哪些
  • 自己做网站做那种类型如何提高百度搜索排名
  • 衡阳衡阳县网站建设网推怎么推广
  • 衡水建设企业网站长沙seo
  • dw做的网站不显示软文广告
  • 什么在线做动图的网站比较好建网站需要什么
  • 为什么做这个网站反馈问题武汉服装seo整站优化方案
  • 网站备案需要去哪里品牌营销策划怎么写
  • wordpress修改媒体库的路径为相对路径关键词优化需要从哪些方面开展
  • 英文免费注册网站百度关键词快速排名方法
  • 中国证券监督管理委员会公告seo的主要内容
  • 广州邮局网站搭建网站基本步骤
  • 定西网站建设商务软文写作范文200字
  • 广州做网站优化费用百度推广一天费用200
  • 旅游网站开发报价单百度搜索指数查询
  • 广州学习做网站建设的学校网络营销策划ppt范例
  • 做网站要用到数据库吗网页设计模板素材图片
  • 网站什么时候做等保西安seo全网营销
  • 单纯python能完成网站开发吗推广的软件有哪些
  • 时尚工作室网站源码汽车网站建设方案
  • 昆明企业建网站多少钱网站申请流程
  • 网站app怎么做的福州seo排名优化