辽宁省营商环境建设局网站杭州品牌设计公司有哪些

pingmian/2025/10/9 6:45:30/文章来源:
辽宁省营商环境建设局网站,杭州品牌设计公司有哪些,东莞公司网站,深圳市住房建设局网站#x1f680;简介 状态模式是一种行为设计模式#xff0c;它允许对象在其内部状态改变时改变其行为#xff0c;我们可以通过创建一个状态接口和一些实现了该接口的状态类来实现状态模式。然后#xff0c;我们可以创建一个上下文类#xff0c;它会根据其当前的状态对象来改…简介 状态模式是一种行为设计模式它允许对象在其内部状态改变时改变其行为我们可以通过创建一个状态接口和一些实现了该接口的状态类来实现状态模式。然后我们可以创建一个上下文类它会根据其当前的状态对象来改变其行为。 状态模式包含以下主要角色。 环境Context角色也称为上下文它定义了客户程序需要的接口维护一个当前状态并将与状态相关的操作委托给当前状态对象来处理。 抽象状态State角色定义一个接口用以封装环境对象中的特定状态所对应的行为。 具体状态Concrete State角色实现抽象状态所对应的行为。 案例 抽象状态 public interface IState {void Handle(Context context); } 具体状态 ConcreteStateA和ConcreteStateB它们都实现了IState接口。 IState接口定义了一个Handle方法这个方法接受一个Context对象作为参数。Context对象持有当前的状态。 在ConcreteStateA的Handle方法中它将Context的状态改变为ConcreteStateB。同样在ConcreteStateB的Handle方法中它将Context的状态改变为ConcreteStateA。 这样Context对象的状态就在ConcreteStateA和ConcreteStateB之间不断切换。 这就是状态模式的基本思想当一个对象的内在状态改变时允许改变其行为这个对象看起来像是改变了其类。 public class ConcreteStateA : IState {public void Handle(Context context){context.State new ConcreteStateB();} }public class ConcreteStateB : IState {public void Handle(Context context){context.State new ConcreteStateA();} }环境角色  环境角色有时候也被称为上下文角色它定义了客户端需要的接口并且维护一个具体状态角色的实例这个实例定义当前状态。 在这个类中首先定义了一个私有的IState类型的_state变量用于存储当前的状态。 然后定义了一个构造函数接收一个IState类型的参数用于初始化_state变量。 接着定义了一个公有的State属性用于获取或设置_state变量的值。在设置_state变量的值时会输出当前状态的类型名。 最后定义了一个名为Request的方法该方法会调用_state变量的Handle方法用于处理请求。这个方法的参数是当前的Context实例这样就可以在Handle方法中改变当前的状态。 public class Context {private IState _state;// Constructorpublic Context(IState state){this.State state;}// Gets or sets the statepublic IState State{get { return _state; }set{_state value;Console.WriteLine(State: _state.GetType().Name);}}public void Request(){_state.Handle(this);} } 测试 class MyClass {public static void Main(string[] args){Context context new Context(new ConcreteStateA());// 不断地进行请求同时更改状态context.Request();context.Request();context.Request();context.Request();} } 运行结果 在测试类中我们创建了一个Context对象并给它设置了初始状态ConcreteStateA。然后我们连续调用四次context.Request()方法。由于ConcreteStateA和ConcreteStateB在处理请求后会互相转换所以输出结果会是A、B、A、B的交替出现。 优缺点 优点 将所有与某个状态有关的行为放到一个类中并且可以方便地增加新的状态只需要改变对象状态即可改变对象的行为。 允许状态转换逻辑与状态对象合成一体而不是某一个巨大的条件语句块。 缺点 状态模式的使用必然会增加系统类和对象的个数。 状态模式的结构与实现都较为复杂如果使用不当将导致程序结构和代码的混乱。 状态模式对开闭原则的支持并不太好。 使用场景 当一个对象的行为取决于它的状态并且它必须在运行时根据状态改变它的行为时就可以考虑使用状态模式。 一个操作中含有庞大的分支结构并且这些分支决定于对象的状态时。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/89011.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

wordpress站长邮箱手机网页设计

我们都知道,抖音直播购物车的商品链接只能是抖音小店的,如果没有开通抖音小店,还能添加小店链接吗? 也是可以的。 抖音直播小黄车的链接可以是自己的小店商品,也可以是别人的小店商品。 抖音直播上链接有两种方式&a…

网站手机端 怎么做北京好用的h5建站

文章目录 力扣141-环形链表示例代码实现要点剖析 力扣141-环形链表 给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测…

电商网站多少钱wordpress本地图片不显示图片

文章目录 1、日期函数2、字符串函数3、数学函数4、其它函数 1、日期函数 //获取日期 select current_date(); //获取时间 select current_time(); //获取时间戳, 格式为日期时间 select current_timestamp(); //获取当前时间, 格式为日期时间 select now(); //获取参数的日期部…

淮北建投网站网站后台如何修改标题

来源:智东西5G已经展开了全面商用,随着5G在垂直行业的不断渗透,人们对于6G的设想也逐步提上日程。面向2030, 6G将在5G基础上全面支持整个世界的数字化,并结合人工智能等技术的发展,实现智慧的泛在可取、全面赋能万事万…

个人网站可以做产品众筹吗住房建设城乡网站

文章目录 性能优化图CPU进程和cpu原理性能指标 性能优化图 CPU 进程和cpu原理 进程与线程: 进程是程序的执行实例,有自己的地址空间和系统资源。线程是进程内的执行单元,共享进程的资源。在多核系统中,使用多线程可以更好地利用多…

1个云虚拟主机怎么做多个网站双语版网站

1、基本背景知识 本定义结合国家标准文件有所发挥,仅供参考。 产品:是生产企业向用户或市场以商品形式提供的制成品; 成套设备:在生产企业一般不用装配工序连接,但用于完成相互联系的使用功能的两个或两个以上的产…

东莞模板建站软件枣庄建设网站

防止应用被截图是一个比较常见的需求,主要是出于安全考虑。下面将分别为iOS(苹果系统)、Android(安卓系统)及HarmonyOS(鸿蒙系统)提供防止截屏的方法和示例代码。 在企业内部使用的应用中&…

中小型网站建设价格ui设计流程培训怎么样

刚好周末,想研究一下前阵子很火的微信跳一跳 下面进入正文。 本文适用对象为WIN10系统,安卓用户。目的在于让丝毫没有接触过Python的小伙伴都能成功运行,如果你恰好是这样的对象,那么跟着我开始操作。我会把我自己的每一步都写下来…

成都网站建设易维达好网站开发与设计的总体思想

由于MySQL从5.5之后的版本源码编译安装用cmake, make, make install安装,不用./Configure,make,make install 安装,所以要看下系由于MySQL从5.5之后的版本源码编译安装用cmake, make, make install安装,不用./Configure,make,make install 安装,所以要看…

南宁市建设信息网站无锡哪个网站建设比较好

背景介绍 在过去的数月中,亚马逊云科技已经推出了多篇博文,来介绍如何在亚马逊云科技上部署 Stable Diffusion,或是如何结合 Amazon SageMaker 与 Stable Diffusion 进行模型训练和推理任务。 为了帮助客户快速、安全地在亚马逊云科技上构建、…

做网站什么域名好网站设计网站建设毕业文稿

在openEuler系统中,您可以通过编辑 /etc/motd 文件来设置登录提示信息。motd 是 “Message of the Day” 的缩写,它通常包含当天的提示信息,在用户成功登录到Linux系统后显示。 以下是详细步骤:1、打开终端。2、使用文本编辑器打开…

静态网站有哪些优点ps网站子页怎么做的

背景 因为ES5的时候没有块级作用域,所以ES5规定不能再if这样的块中声明函数,但是为了兼容各大浏览器并没有严格遵守这条规定。 ES6的时候引入了块级作用域,规定在块级作用域中声明函数就相当于使用let来声明变量一样。但是又因为浏览器端的…

沈阳市建设工程项目管理中心网站网站显示建设中页面

描述 该函数等效于C /操作系统函数read(),因为它绕过了诸如print,read和seek之类的函数所采用的缓冲系统,它仅应与相应的syswrite和sysseek函数一起使用。 它从FILEHANDLE中读取LENGTH个字节,并将输出放入SCALAR中。如果指定了OFFSET,则将数据从OFFSET字节写入SCALAR,从而有效…

网站内页301wordpress做企业主页

贪心问题 P1803 凌乱的yyy / 线段覆盖 凌乱的yyy / 线段覆盖 题目背景 快 noip 了,yyy 很紧张! 题目描述 现在各大 oj 上有 n n n 个比赛,每个比赛的开始、结束的时间点是知道的。 yyy 认为,参加越多的比赛,no…

网站中的横幅怎么做东莞网络推广案例

想尝试这个FastSam的部署,但至今还没跑通,一个问题能带出一片问题,感觉挺心情挺郁闷的。后来和学长交流的时候,说那就是学少了,没必要急着将跑通它作为目的。也很有道理,这个任务还不太适合我当前的水平&am…

哪里有服务好的网站建设专门做游戏交易的网站有哪些

前言最常用的斜框标注方式是在正框的基础上加一个旋转角度θ,其代数表示为(x_c,y_c,w,h,θ),其中(x_c,y_c )表示范围框中心点坐标,(w,h)表示范围框的宽和高[1,2,7]。对于该标注方式,如果将w和h的值互换,再将θ加上或者…

我国省级档案网站建设状况怎么做带购物功能的网站

一、ansible简介 需要在一台机器上搭建ansible环境,且配置目的ip的密码,通道没有问题即可下发命令 使用的通道是ssh(端口:36000) 二、搭建细节 1、安装ansible yum install -y ansible 2、把目的ip密码写到配置…

物联网网站的建设和维护wordpress里再建一个网站

1 安装python环境 1.1 下载python 首先打开http://www.python.org (这个是python官网)下载配置环境。点击上方 downloads,选择对应的系统的版本就行,这里以windows64系统为例。 点击之后,可以看到很多版本,这里我选择…

网站站群建设thinkphp可以做网站吗

GPT-4 Vision 系列: 翻译: GPT-4 with Vision 升级 Streamlit 应用程序的 7 种方式一 GPT-4 Vision 的 7 个实际用例 Pre-requisites:先决条件: 订阅 ChatGPT Plus 以访问 GPT-4 Vision。如果您不熟悉 Streamlit,请按照安装步骤操作。 1. 绘制您的应…

许昌网站建设公司舆情监测

文章目录 导文摘要前言绪论1课题背景2国内外现状与趋势3课题内容相关技术与方法介绍系统分析总结与展望导文 基于深度学习的交通标识智能识别系统是一种利用深度学习模型对交通标识进行识别和解析的系统。它可以帮助驾驶员更好地理解交通规则和安全提示,同时也可以提高道路交通…