当前位置: 首页 > 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.yayakq.cn/news/878256/

相关文章:

  • 桐乡住房和建设局网站WordPress小程序论坛
  • 飞行时代网站建设深圳龙岗网络公司
  • 智能网站建设系统24小时网站开发 pdf
  • 海南网站搭建价格可做宣传的网站都有哪些
  • 二级医院做网站网页设计列表
  • 官方网站建设 都来磐石网络中山小榄网站建设
  • 网站建设分为展示型山东省建设工程信息网站
  • 内网做网站需要空间吗wordpress首页弹出公告
  • 在线快速建站网页设计优秀作品展示
  • 开源网站建设公众号可以做分类信息网站吗
  • 电商设计师联盟网站项目管理软件排名
  • 网站开发工作怎么样做门户网站挣钱吗
  • 南京移动网站建设效果好wordpress 4.7.5 中文
  • 北京学校网站建设妇科医院免费的咨询
  • 网站开发技术说明网页制作软件dw与python软件对比
  • 哪个网站做h5好用如何选择邯郸网站制作
  • 免费图标下载网站有框架有模板怎么做网站
  • 简述站点推广有哪些方式网站建设第三方平台
  • 企业网站建设规划ppt盐城个人网站建设
  • 秦皇岛开发区建设局网站长武网站建设
  • 做网站素材网ui设计是做什么的
  • 中国医院建设协会网站网站建设最新教程视频教程
  • 高质量的网站建设做网站保定
  • 遵化手机网站设计搜索引擎营销是目前最主要的网站推广营销
  • 一个网站有多个域名万国商业网
  • 网站提交收录软件17网站一起做网店后台
  • 网站背景自动切换精准营销案例分析
  • ai可以用来做网站吗各大网站有哪些
  • 怎么用dw第一次做网站利用html5 监控网站性能
  • 安徽省住房和城乡建设厅网站搭建个人网站