静安微信手机网站制作手机上怎么做能打开的网站吗

pingmian/2025/10/9 1:03:39/文章来源:
静安微信手机网站制作,手机上怎么做能打开的网站吗,苏州现在能去吗,国外网站设计网站文章目录 **一、技术背景与应用场景****为何使用状态模式#xff1f;****典型应用场景包括但不限于#xff1a;** **二、状态模式定义与结构****三、使用步骤举例****四、优缺点分析****总结** 一、技术背景与应用场景 状态模式是一种行为设计模式#xff0c;用于处理一个对… 文章目录 **一、技术背景与应用场景****为何使用状态模式****典型应用场景包括但不限于** **二、状态模式定义与结构****三、使用步骤举例****四、优缺点分析****总结** 一、技术背景与应用场景 状态模式是一种行为设计模式用于处理一个对象在其内部状态改变时其行为也随之发生相应变化的情况。例如在ATM机中用户操作取款、存款、查询等会引发系统状态的变化和对应的操作游戏角色根据所处状态行走、奔跑、战斗执行不同的动作。 为何使用状态模式 减少条件分支通过将状态与相关行为封装为独立类可显著降低业务逻辑中的嵌套或分支条件判断提高代码可读性和维护性。易于扩展新状态当需要新增状态或修改状态行为时只需创建新的状态类或调整现有状态类即可不影响原有系统的整体结构。职责明确遵循单一职责原则状态管理与状态相关的操作分离使得各部分职责更加清晰。 典型应用场景包括但不限于 游戏开发游戏角色的不同状态及其关联行为。设备控制家电设备的各种工作模式切换及其响应操作。订单系统订单流程中的不同状态待支付、已支付、已发货、已完成等及相应的操作处理。 二、状态模式定义与结构 状态模式包含四个核心组成部分 环境角色Context持有当前状态并将与状态相关的请求委托给当前状态对象来处理。抽象状态角色State定义所有具体状态类需要实现的接口通常包含一个或多个方法用于处理来自环境角色的方法调用。具体状态角色Concrete State实现了抽象状态角色声明的接口每个具体状态对应一种特定的行为。状态转移在某个具体状态对象执行对应处理行为时它可能会改变环境角色的状态引用指向另一个具体状态对象。 三、使用步骤举例 模拟了一个简单的电商订单系统这个系统通过状态模式来处理订单从创建到完成或取消的整个生命周期中的不同状态和操作。 抽象状态角色OrderState定义了所有具体状态类需要实现的方法接口包括place()、pay()、ship()和cancel()等。 // 抽象状态角色 public abstract class OrderState {protected Order order;public void setOrder(Order order) {this.order order;}// 抽象方法由具体状态类实现public abstract void place(); //下单public abstract void pay(); //支付public abstract void ship(); //发货public abstract void cancel(); //取消订单 }具体状态角色 CreatedState代表订单刚创建的状态在此状态下可以进行下单和取消操作当调用place()时只是打印提示信息而调用cancel()会将订单状态转换为CancelledState。 // 具体状态角色 public class CreatedState extends OrderState {Overridepublic void place() {System.out.println(订单已创建等待支付);}Overridepublic void pay() {System.out.println(订单已支付~);// 转换状态至“已支付”状态order.setState(new PaidState());}Overridepublic void ship() {System.out.println(请先完成支付才能发货);}Overridepublic void cancel() {System.out.println(订单已取消);// 设置订单为已取消状态order.setState(new CancelledState());} }PaidState代表订单已支付的状态在此状态下无法再次下单或支付但可以进行发货和取消操作。发货时会将订单状态转换为ShippedState取消则转换为CancelledState。 public class PaidState extends OrderState {Overridepublic void place() {System.out.println(请勿重复下单);}Overridepublic void pay() {System.out.println(订单已支付无需再次支付);}Overridepublic void ship() {System.out.println(订单开始发货...);// 转换状态至“已发货”状态order.setState(new ShippedState());}Overridepublic void cancel() {System.out.println(正在申请退款...);// 设置订单为已取消状态order.setState(new CancelledState());} }ShippedState代表订单已发货的状态在此状态下仅能查看状态不能执行其他操作。 public class ShippedState extends OrderState {Overridepublic void place() {System.out.println(请勿重复下单);}Overridepublic void pay() {System.out.println(订单已支付无需再次支付);}Overridepublic void ship() {System.out.println(订单已发货无需再次发货);}Overridepublic void cancel() {System.out.println(您已无法取消已发货的订单);} }CancelledState代表订单已取消的状态同样只能查看状态不能执行其他操作。 public class CancelledState extends OrderState {Overridepublic void place() {System.out.println(您的订单已取消请重新下单);}Overridepublic void pay() {System.out.println(该订单已取消无法进行支付);}Overridepublic void ship() {System.out.println(该订单已取消无法发货);}Overridepublic void cancel() {System.out.println(订单已处于取消状态);} }环境角色Order持有当前订单状态并提供与订单状态相关联的操作方法如place()、pay()等。当调用这些方法时实际上是委托给当前持有的状态对象去执行相应的行为。 // 环境角色 public class Order {private OrderState state;public void setState(OrderState state) {this.state state;state.setOrder(this);}public void place() {state.place();}public void pay() {state.pay();}public void ship() {state.ship();}public void cancel() {state.cancel();} }应用端示例OrderStateMachineDemo 创建一个新订单实例初始状态下是CreatedState。然后按照实际业务流程调用place()、pay()、ship()和cancel()方法根据不同的状态订单的行为会有不同的响应并可能触发状态的转换。 // 应用端示例 public class OrderStateMachineDemo {public static void main(String[] args) {Order order new Order();order.setState(new CreatedState()); // 初始状态为“已创建”order.place(); // 根据状态进行操作order.pay();order.ship();order.cancel();} }测试结果 四、优缺点分析 状态模式的优点在于 模块化状态行为各状态行为被划分到各自的具体状态类中便于理解和维护。增强灵活性添加新状态或修改状态行为不涉及其他状态逻辑利于扩展。消除条件分支移除了大量基于状态判断的条件语句提高了程序内聚性。 潜在挑战可能包括 过多具体状态类随着状态数量增加具体状态类的数量也会增长可能影响系统组织结构简洁性。复杂状态转换逻辑状态间转换规则复杂时需额外关注状态转换的一致性和正确性。 总结 状态模式利用状态驱动的方式对对象行为进行有效管理使得软件能够根据对象状态的变化动态调整行为。合理运用状态模式可以提升系统对于复杂状态变化场景的适应能力同时优化代码结构保持高可维护性和扩展性。

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

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

相关文章

安庆什么网站好小事做网站建设 销售人员

本章分支结构的学习内容如下: 三、C语言中的分支与循环—if语句 (1) 三、C语言中的分支与循环—关系操作符 (2) 三、C语言中的分支与循环—条件操作符 与逻辑操作符(3) 三、C语言中的分支与循环—switch语句(4)分支结构 完 本章循环结…

贵州建设厅网站官网网站建设工作策划书

持续集成是一种开发实践,它倡导团队成员需要频繁的集成他们的工作,每次集成都通过自动化构建(包括编译、构建、自动化测试)来验证,从而尽快地发现集成中的错误。让正在开发的软件始终处于可工作状态,让产品…

买男装最好的购物网站网站防注入

小张是一位网络安全技术测试员,最近他接到了一个头疼的任务,那就是评估公司系统的安全性,因此他前来咨询,在得知SOCKS5代理IP可以帮他之后,他不禁产生疑问,这是什么原理?其实和小张一样的朋友不…

如何做谷歌优化seo营销方案

递归 思路: 递归子问题: 确认节点 p、q 是否在节点 root 子树中: lson isChild(root->left, p, q);rson isChild(root->right, p, q);在 root 子树中的条件是: 在左子树中、或者在右子树中、或者 p/q 就是当前节点&#…

文化馆网站建设解决方案深圳专业网站设计公司

1. 题目 在数组中的两个数字&#xff0c;如果前面一个数字大于后面的数字&#xff0c;则这两个数字组成一个逆序对。输入一个数组&#xff0c;求出这个数组中的逆序对的总数。 示例 1: 输入: [7,5,6,4] 输出: 5限制&#xff1a; 0 < 数组长度 < 50000来源&#xff1a;力…

网站数据库如何做秦皇岛网站排名

转载于:https://www.cnblogs.com/phplearnings/p/3650849.html

杭州外贸网站多少钱seo首页排名优化

下一代的社区系统&#xff0c;为未来而构建简介Symphony([ˈsɪmfəni]&#xff0c;n.交响乐)是一个现代化的社区平台&#xff0c;因为它&#xff1a;实现了面向内容讨论的论坛实现了面向知识问答的社区包含了面向用户分享、交友、游戏的社交网络100% 开源动机很多社区论坛系统…

企业为什么做网站系统新乡网站建设哪家公司好

https://blog.csdn.net/Dorothy1224/article/details/79280591 https://blog.csdn.net/z_z_h_0/article/details/85119163

常用网站缩略图自定义搭建服务器做网站

三个标红的需要前面加上UNSAFE_ 三个常用的组件

免费模板网站崇文企业网站建设公司

mkdir命令 mkdir&#xff08;英文全拼&#xff1a;make directory&#xff09;命令用于创建目录。 著者 作者&#xff1a;David MacKenzie。 mkdir命令 -Linux手册页 语法 mkdir [参数] [文件名] 命令选项及作用 执行令 &#xff1a; mkdir --help 执行命令结果 参数 …

卖信息的网站手机微信网站怎么做

我相信&#xff0c;如果我们能够问自己两个问题&#xff0c;我们将会看到&#xff0c;惩罚永远不会以建设性的方式让我们的需要真正得到满足。 第一个问题&#xff1a; 你想要对方去做哪些和现在不一样的事情呢&#xff1f; 如果我们之问这一个问题&#xff0c;可能有时候看上…

兰州市建设工程质量监督站网站加热器网站怎么做的

目录 一、运算符重载 1&#xff09;比较、赋值运算符重载 2&#xff09; 流插入留提取运算符重载 二、剩下的默认成员函数 1&#xff09;赋值运算符重载 2&#xff09;const成员函数 3&#xff09;取地址及const取地址操作符重载 三、再谈构造函数 1&#xff09;初始化列表 …

服务中心网站建设方案wordpress手机电影

🌹🌹🌹 此篇开始进入架构篇范围(❤艸`❤) 理论 即主从复制,master以写为主,Slave以读为主。当master数据变化的时候,自动将新的数据异步同步到其它slave数据库。 使用场景 读写分离 容灾备份数据备份水平扩容主从架构 演示案例 注:masterauth、replicaof主…

中国建设造价工程协会网站石家庄网站建设吧

问题&#xff1a; 出现在大批量添加或修改数据时出现的&#xff0c;在迁移数据库、备份还原或数据导入时也会出现&#xff1a; 1153&#xff1a;Got a packet bigger than‘max_allowed_packet’bytes 原因&#xff1a; max_allowed_packet就是指mysql服务器端和客户端在一…

网站建设东莞公司新注册建筑公司名称大全

对比广大博客之后总结如下。 有些题目强制要求在线&#xff0c;输出需要flush&#xff0c;那么这里输出只用cout&#xff0c;cout<<endl。 只开ios优化&#xff0c;不开cin.tie和cout.tie。 read()快读 输入整数。 inline int read(){int x0;char cgetchar();while(c…

安福网站建设做哪个网站有效果

Pika Labs 一款3D 动画生成工具 本文地址&#xff1a;https://blog.csdn.net/qq_28550263/article/details/134657306 目 录 1. 简介2. 准备2.1 安装 discord2.2 加入 Discord 频道 3. Pika 使用指南2.1 快速开始2.2 从图像到视频2.3 Pika Bot按钮2.4 提示&#xff08;Prompt&a…

做网站推广织梦网站怎样做防护

手头做一个视频相关项目&#xff0c;但是客户发来的测试视频(avi格式) 现有组件不能解码。现有视频解码组件方案有基于JMF和opencv Jni调用。远远不能满足目前市面上玲琅满目的各种视频编码标准。进行检索 找到xuggler官方主页&#xff1a;http://www.xuggle.com/xuggler 对5.…

wordpress個人網站域名母婴行业网站建设

在软件开发过程中&#xff0c;自动化测试是提高效率和质量的重要手段。而Selenium作为一个广泛使用的自动化测试工具&#xff0c;为开发者提供了强大的功能和灵活性。本文将介绍Selenium的概念&#xff0c;并分享一些提升自动化测试效果的关键技巧。 什么是Selenium&#xff1…

什么是专业网站整合营销传播工具有哪些

通过HTMLPaser和urlib模块对网页进行抓取并分析实现步骤&#xff1a;1、自定义MYHTMLParser类2、实例化类并访问天气预报官网3、抓取关键数据4、对数据进行切片处理并输出字典from html.parser import HTMLPaser #处理页面模块from urllib import request #访问网站模块L […

seo网站快速排名做外贸网站维护费是多少

左移 选中多行代码后&#xff0c;按下Tab键&#xff0c;一次缩进四个字符 右移 鼠标选中多行代码后&#xff0c;同时按住shiftTab键&#xff0c;一次左移四个字符