创建网站代码网站建设的目的和意义

diannao/2026/1/26 20:59:17/文章来源:
创建网站代码,网站建设的目的和意义,wordpress 登录发布,wordpress 导航 插件一、引言 在软件设计中#xff0c;设计模式是解决常见问题的最佳实践。它们提供了一种重用设计的方法#xff0c;使得代码更易于理解、维护和扩展。状态设计模式是行为设计模式的一种#xff0c;它允许对象在其内部状态改变时改变其行为。当控制一个对象的状态转换条件表达…一、引言 在软件设计中设计模式是解决常见问题的最佳实践。它们提供了一种重用设计的方法使得代码更易于理解、维护和扩展。状态设计模式是行为设计模式的一种它允许对象在其内部状态改变时改变其行为。当控制一个对象的状态转换条件表达式过于复杂时使用状态模式可以简化代码。 二、状态设计模式的定义 状态模式State Pattern允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。其意图是让一个对象在其内部状态改变的时候其行为也随之改变。这个对象看起来就像是改变了它的类一样。 三、状态设计模式的结构 状态模式包含以下角色 环境Context持有当前状态并定义客户端需要的接口。环境类可以将自身作为一个参数传递给处理请求的状态类方法从而实现对环境的操作。抽象状态State定义一个接口以封装与环境的特定状态相关的行为。具体状态Concrete State实现抽象状态接口中所定义的方法。每个具体状态都表示一个可以相互转换的状态。 四、Python实现状态设计模式 让我们用一个简单的例子来充分了解该模式中的3 个参与者。假设要用一个简单的按钮来实现电视遥控器执行开/关动作。如果电视打开这个遥控器按钮将关闭电视反之亦然。在这种情况下state 接口将会定义相应的方法(例如doThis))来执行诸如打开/关闭电视等操作。我们还需要定义 Concrete 类来处理不同的状态。在这个例子中我们有两个主要状态startstate和 stopstate它们分别表示电视的打开状态和电视的关闭状态。 就本例来说TVContext 类将实现 state 接口并维护对当前状态的引用。根据相应的请求TVContext 将它们转发到相应的 Concretestate类这个类实现了(针对给定状态的)实际行为从而执行所需的操作。因此,在这种情况下,基本状态是 startstate(如前面定义的)TVContext 类接收的请求是关闭电视。TVContext 类可以理解该需求并相应地将它转发到 stopstate 相应的类之后这个类就会从内部调用 doThis()方法来实际关闭电视: 下面是一个简单的Python代码示例展示了如何使用状态模式 from abc import abstractmethod, ABCMetaclass State(metaclassABCMeta):abstractmethoddef doThis(self):passclass StartState(State):def doThis(self):print(TV Switching ON..)class StopState(State):def doThis(self):print(TV Switching OFF..)class TVContext(State):def __init__(self):self.state Nonedef getState(self):return self.statedef setState(self, state):self.state statedef doThis(self):self.state.doThis()context TVContext() context.getState() start StartState() stop StopState() context.setState(stop) context.doThis()五、适用场景与优点 5.1 适用场景 对象的行为依赖于它的状态属性并且它会根据它的状态改变而改变它的相关行为。代码中包含大量与对象状态有关的条件语句例如 switch-case 语句或 if-else 语句。使用状态模式可以将这些条件判断逻辑转移到不同状态类中提高代码的可读性和可维护性。需要对对象的各种状态进行统一管理且不同状态下对象的行为有较大差异。 5.2 优点 封装了状态的转换规则在状态类中可以局部化状态的转换逻辑避免了过多的条件判断。将所有与某个状态有关的行为放到一个类中只需要注入一个不同的状态对象即可使环境对象拥有不同的行为。这样可以减少环境中的代码量使其更加简洁清晰。允许状态转换逻辑与状态对象合成一体而不是提供一个巨大的条件语句块。这有利于代码的复用和扩展。

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

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

相关文章

视频制作网站都有哪些公司网站实名认证

一、物理连接 二,流程分析 电脑连接CAN分析仪,电脑通过软件USB-CAN把can十六进制数据发到CAN分析仪。CAN分析仪连接CAN转以太网设备,数据通过CAN转以太网设备后,通过网线传送到单片机。这里面,CAN转以太网设置为TCP C…

网站 手机 app上海建立网站公司

背景展示:有页码的操作题 背景需求: 实操课终于全部结束了,把考试内容(docx)都写好了 【办公类-21-10】三级育婴师 视频转文字docx(等线小五单倍行距),批量改成“宋体小四、1.5倍行…

潜江做网站文化传媒公司广告宣传

Windows 11已经向全世界的客户推出,自从它问世以来已经收到各种有趣的更新。例如,Windows 11的22H2版本(操作系统的第一个大更新)为文件资源管理器添加了标签,启用了任务栏的拖放支持,以及更多。Windows-11…

做网站的前景如何wordpress邮件联系

分享 NVIDIA 基于 GPU 的 TTS 解决方案介绍。 1. 基于 FastPitchHifi-GAN 的 Streaming TTS 效果优化 NVIDIA 在 TTS 领域也做了一些供大家参考的工作,例如提供了高效的流式 TTS 部署方案,利用 TensorRT 加速模型推理速度,并通过 Triton Inf…

湖南衡阳网站建设开公司要多少钱才能注册

题目描述: 提取字符串中的最长合法简单数学表达式,字符串长度最长的,并计算表达式的值。如果没有,则返回0 简单数学表达式只能包含以下内容 0-9数字,符号 +-* 说明: 1. 所有数字,计算结果都不超过long 2. 如果有多个长度一样的,请返回第一个表达式的结果 3. 数学表达式…

大连网站开发需要多少钱四川建设网官网app

文章目录 0 前期教程1 概述2 matplotlib2.1 库导入2.2 图片的各个部分解释2.3 代码风格2.4 后端 3 集成matplotlib图像到pyqt界面中3.1 使用到的模块3.2 理解Qt Designer中的“控件提升”3.3 界面与逻辑分离的思路3.4 扩展 0 前期教程 【PyQt】PyQt5进阶——串口上位机及实时数…

杭州网站建设杭州沃迩夫做水暖的网站

备忘录模式 一、概述二、结构三、案例实现(一)“白箱”备忘录模式(二)“黑箱”备忘录模式 四、优缺点五、使用场景 一、概述 备忘录模式提供了一种状态恢复的实现机制,使得用户可以方便地回到一个特定的历史步骤&…

中国电信视频app下载东莞百度快照优化排名

问:three.js是当前主流的网页3d开发框架,但three.js的editor功能比较粗糙。国内有没有比较容易上手功能类似Unity3D的网页3D编辑软件,可以通过实体组件系统来完成程序扩展,简单拖拉拽完成3D场景、常用特效和用户交互的构建&#x…

青岛本地招聘网站直播app开发公司排名

lucene自动补全最简单的Apache Lucene查询TermQuery匹配包含指定术语的任何文档,无论该术语出现在每个文档中的何处 。 使用BooleanQuery可以将多个TermQuery组合在一起,并完全控制哪些术语是可选的( SHOULD )和哪些是必需的&…

北京网站建设方案托管动易门户网站价格

博客园有很多漂亮的皮肤,但总是有一些地方我不大喜欢,所以经过慎重考虑,我决定亲自动手换个装。本文将介绍博客园换装的一些基础(不涉及标准皮肤的做法),如果你想让你的博客更炫,可以参考本文入…

建立企业网站的费用做搬家网站推广在那好

这里是Z哥的个人公众号每周五早8点 按时送达当然了,也会时不时加个餐~我的第「77」篇原创敬上在一个分布式系统的开发团队中,有一些问题是很容易产生程序员之间矛盾的。其中之一就是「业务归属」,就是当新加/修改一个业务的时候&a…

国外网站建设的发展生产企业网站建设

某天突然收到报警,数据库大量事务等待,进到数据库后发线大量的插入操作被阻塞,且都是同一个表的。通过 show engine innodb status 发现插入操作都是在等待索引 idx_create_time(create_time) 的 insert intention lock(跟 gap 锁互斥)&#…

门户网站怎么做seo营销文案

一、本文介绍 本文给大家带来的改进机制是EMAttention注意力机制,它的核心思想是,重塑部分通道到批次维度,并将通道维度分组为多个子特征,以保留每个通道的信息并减少计算开销。EMA模块通过编码全局信息来重新校准每个并行分支中的通道权重,并通过跨维度交互来捕获像素级…

天津网站排名优化wordpress 登录显示

第一章 绪论1.1 计算机的产生与发展现代计算机的发展电子管时代晶体管时代集成电路时代超大规模集成电路时代1.2 冯.诺伊曼计算机模型冯诺伊曼计算机的组成,各部分的作用.冯诺伊曼计算机的特点.(1) 计算机由运算器、存储器、控制器和输入设备、输出设备五大部件组成…

新公司网站设计注意事项wordpress音乐播放插件

set是关联容器&#xff0c;类似于集合。 特点是里面的元素不会重复&#xff0c;而且元素时有序的。 1.声明定义&#xff1a; #include<set>using namespace std;set<int> s; 2.常见用法 s.inert(5); //插入 s.begin(); //返回s的第一个元素 s.end(); // 返回最后一…

做网站什么码建设银行论坛网站

题意&#xff1a; ----最大M子段和问题 给定由 n个整数&#xff08;可能为负整数&#xff09;组成的序列以及一个正整数 m&#xff0c;要求确定序列的 m个不相交子段&#xff0c;使这m个子段的总和达到最大&#xff0c;求出最大和。 题目&#xff1a; Now I think you have …

辽宁造价工程造价信息网seo是什么简称

目录 一&#xff0c;ProcessOn 1.1 ProcessOn是什么 1.2 ProcessOn应用场景 1.3 流程图 1.4 泳道图简介 1.5 Process网址与界面简介 二&#xff0c;流程图案例 2.1 门诊流程图 2.2 住院流程图 2.3 药房药库流程图 2.4 会议OA流程图 三&#xff0c;Axure自定义元件 …

北京网站设计公司新鸿儒国家高新技术企业是什么意思

在Windows10上使用Ubuntu终端 习惯了ubuntu的开发&#xff0c;回到windows的command可以说是很绝望了。之前偶尔用windows时一直用git-bash来代替。但是发现windows已经添加了对ubuntu子系统的支持&#xff0c;那直接用不是更爽。 1.安装 进入控制面板&#xff0c;开启适用于Li…

wordpress如何网站顶部右侧广告做网站整理信息的表格

在IDEA 中设置背景图片&#xff0c;可以按照以下步骤操作&#xff1a; 1、打开 IntelliJ IDEA 软件&#xff0c;进入代码编辑主界面。 点击编辑窗口上方的“File”菜单项。 2、在下拉子菜单中&#xff0c;选择“Settings”选项&#xff08;如果你使用的是 macOS&#xff0c;可…