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

苏州seo网站推广公司58同城推广

苏州seo网站推广公司,58同城推广,网站开发自学难吗,软件ui定义 允许一个对象在其内部状态改变时改变它的行为。从而使对象看起来似乎修改了其行为。 应用场景 在软件构建过程中#xff0c;某些对象的状态如果改变#xff0c;其行为也会随之#xff0c;而发生变化#xff0c;比如文档处于只读状态#xff0c;其支持的行为和读写…定义 允许一个对象在其内部状态改变时改变它的行为。从而使对象看起来似乎修改了其行为。 应用场景 在软件构建过程中某些对象的状态如果改变其行为也会随之而发生变化比如文档处于只读状态其支持的行为和读写状态支持的行为就可能完全不同。如何在运行时根据对象的状态来透明地更改对象的行为?而不会为对象操作和状态转化之间引入紧耦合? 结构 代码示例 //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.hint main() {Lamp lamp;lamp.request(); // 操作灯lamp.request(); // 操作灯return 0; }运行结果 要点总结 State模式将所有与一个特定状态相关的行为都放入一个State的子类对象中在对象状态切换时切换相应的对象;但同时维持State的接口这样实现了具体操作与状态转换之间的解耦。为不同的状态引入不同的对象使得状态转换变得更加明确而且可以保证不会出现状态不一致的情况因为转换是原子性的——即要么彻底转换过来要么不转换。如果State对象没有实例变量那么各个上下文可以共享同一个State对象从而节省对象开销。
http://www.pierceye.com/news/690071/

相关文章:

  • 阿里巴巴网官方网站新公司在哪做网站
  • 邢台专业做网站报价做一门户网站价格
  • 中山企业手机网站建设设计方案翻译
  • 江苏省品牌专业群建设专题网站wordpress 返利 插件
  • 建设部网站官网设计排版网站
  • 企业网站建设应避免数据孤岛网站建设费入何科目
  • wordpress数据量大网站访问石家庄网站建设招商
  • 公司核名在哪个网站免费申请无限流量卡
  • 做网站和网页的目的和作用是什么山西2地又检出阳性
  • 自助网站建设推广优化策略wordpress中文采集插件
  • 网站开发及运营成本做网站 公司 个体
  • 永久免费建站地址苏州h5网站建设价钱
  • 室内设计网站网站建设中请稍后再访问
  • 十堰网站开发培训编程软件手机
  • 南京网站优化推广微网站缺点
  • 大连零基础网站建设培训哪里有固安县建设局网站
  • 怎么制作网站首页培训心得体会总结简短
  • 商务网站建设 模板长春高端品牌网站建设
  • 做网站比较便宜办公资源网
  • 公司怎么做网页网站遵义网站设计公司
  • 网站建设毕业设计yy直播回放
  • 响应式网站有哪些2017淮南网络推广报价
  • 兰州公司网站建设网站建设筹备方案
  • 租房网站建设做一个跨境电商网站
  • 网站设计制作过程容桂做pc端网站
  • 宜昌市上海中学官网seo文章外包
  • 加强普法网站建设的通知制作婚恋网站
  • 北大荒建设集团有限公司网站网站添加在线qq聊天
  • 网站首页被k咋办上海市企业服务云登录
  • 长安镇网站建设公司大网站制作公司