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

潜江建设局网站杭州网页设计

潜江建设局网站,杭州网页设计,开发者选项怎么设置最流畅,成都建设路小学网站1.定义 允许一个对象在其对象内部状态改变时改变它的行为。 2.组成结构 Context#xff1a;定义客户感兴趣的接口#xff1b;维护一个ConcreteState子类的实例#xff0c;这个实例定义当前的状态。State#xff1a;定义一个接口来封装Context的与特定状态相关的行为。Co…1.定义 允许一个对象在其对象内部状态改变时改变它的行为。 2.组成结构 Context定义客户感兴趣的接口维护一个ConcreteState子类的实例这个实例定义当前的状态。State定义一个接口来封装Context的与特定状态相关的行为。ConcreteState每个ConcreteState实现一个与Context的一个状态相关的行为。 3.应用场景 状态模式是用途非常广泛的模式所有使用到有限状态机FSM的地方都可以使用该模式。当然如果不使用状态模式的话switch/case语句也可以胜任简单的状态机但对于大型的状态机具有大量的状态和事件维护冗长、嵌套的switch/case语句是非常困难和容易出错的而且switch/case语句通常都没有很好地分离状态机的逻辑和要执行的操作。另外一种选择状态转移表WIS20中采用它更容易维护如果要增加新的状态转移只要向表中增加一行就可以了而且可以在运行时动态改变状态机的逻辑还可以创建多个不同的状态转移表在运行时动态地选择解释执行哪一个但缺点是要编写大量的代码去支持状态转移表而且需要查询和解释执行速度较慢 状态模式是最灵活、最高效的选择因为它彻底分离了状态机的逻辑和动作行为二者可以独立变化、互不影响而且容易扩展同时效率很高。当然它也有缺点就是编写State的派生类是一项乏味的工作同时状态逻辑分散无法在一个地方看到整个状态机的逻辑。为了克服这两个缺点可以用一个文本描述状态转移表然后用适当的Software Factory工具把它变成状态模式所必需的类的代码。 GUI是典型的状态应用。哪些菜单项和按钮是Disabled哪个窗口应该激活焦点应放在哪里等等都和状态有关。如果不把这些要素组织成为一个单一的、集中的状态机控制结构那将是一场噩梦。 4.示例代码 #include iostream #include list using namespace std;class State; class ConcreteStateA; class ConcreteStateB;class Context { public:State *state;Context(State *_state):state(_state){}void Request(); };class State { public:string name;virtual void Handle(Context *c) 0;virtual ~State(){cout delete : this-name endl;}; };class ConcreteStateA:public State { public:ConcreteStateA(){name 状态A;}virtual void Handle(Context *c); };class ConcreteStateB:public State { public:ConcreteStateB(){name 状态B;}virtual void Handle(Context *c); }; void ConcreteStateA::Handle(Context *c){delete c-state;c-state new ConcreteStateB(); } void ConcreteStateB::Handle(Context *c){delete c-state;c-state new ConcreteStateA(); } void Context::Request(){cout 当前状态: state-name endl;this-state-Handle(this);cout 切换后状态: state-name endl endl; } int main(void) {Context *c new Context(new ConcreteStateA());c-Request();c-Request();c-Request();c-Request();return 0; }5.引用 https://blog.csdn.net/qq_40178082/article/details/133039091
http://www.hkea.cn/news/14552994/

相关文章:

  • 杭州做网站自助网站建设软件
  • 百度推广包做网站吗临沂网站建设公司招聘
  • 国外做兼职的网站有哪些wordpress 分类目录页面
  • 网站群建设存在的问题洪山网站建设公司
  • 河源网站建设多少钱各种网站
  • 厦门网站个人制作泰州网站建设方案推广
  • 张掖网站建设培训班html5经典网站
  • 帝国cms手机网站教程二建注册查询系统
  • asp.net个人网站空间如何利用微博推广网站
  • 高端网站建设怎么报名北京公关公司最好的公司
  • 重庆网站建设求职简历婚纱摄影网站模板免费下载
  • 济南营销网站制作公司哪家好黄陂机械加工网
  • wordpress微信登录申请优化设计电子版
  • 青岛营销型网站建设大连金州代做网站公众号
  • 图书管理系统网站开发设计过程深圳中英文网站建设
  • 微网站的优势wordpress顶部代码
  • 网站模版切换活动营销策划方案
  • 自己做ppt网站在线域名注册
  • 网站修改字体尺寸怎么做织梦零基础做网站
  • 个人网站备案备注写什么宜昌市建设厅官方网站
  • seo网站优化培训怎么做怎么做黑彩黑彩网站
  • 番禺建设局网站巨量引擎广告投放
  • 广州品牌型网站怎样进行网络推广效果更好
  • 如何建设网站济南兴田德润简介电话网站分辨率兼容怎么做
  • 泰州网站优化公司网站模板的使用
  • 郑州做网站公司msgg网站安全漏洞扫描工具
  • 常州网站建设方案优化wordpress注册模板下载地址
  • 做一名网络写手去那个网站好十堰网站建设是什么
  • 企业网站源码进一品资源网网站正在建设中yuss
  • 网站开发难不难学爱链接