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

教学网站在线自测功能怎么做公司网站 源码

教学网站在线自测功能怎么做,公司网站 源码,什么是企业qq什么是营销qq,宁陵做网站#x1f4d6; 目录前言什么是状态模式案例背景#xff1a;虚拟仿真实验中的仪器状态管理案例效果图#xff08;示意#xff09;代码实现5.1 状态接口#xff1a;IState5.2 具体状态类#xff1a;IdleState / HeatingState / BoilingState5.3 状态管理器#xff1a;Water… 目录前言什么是状态模式案例背景虚拟仿真实验中的仪器状态管理案例效果图示意代码实现5.1 状态接口IState5.2 具体状态类IdleState / HeatingState / BoilingState5.3 状态管理器WaterStateMachine5.4 UI 控制状态切换按钮运行流程注意事项总结扩展思考总结 1. 前言在虚拟仿真实验中实验对象通常会有 多种状态比如水壶空闲、加热、沸腾烧杯空、注入液体、混合仪器待机、运行、故障如果用 大量 if-else 判断状态代码会混乱且难以维护。状态模式State Pattern 可以把对象的每个状态封装成类实现 状态切换灵活、行为清晰。 2. 什么是状态模式状态模式允许对象在内部状态变化时改变行为使得对象看起来好像 改变了类。优点每个状态独立易于维护避免大量 if-else状态切换灵活可扩展 3. 案例背景虚拟仿真实验中的仪器状态管理我们用 加热水实验 作为例子水壶状态Idle水温 20℃未加热Heating温度升高 20~100℃Boiling温度 100℃不同状态下仪器行为不同Idle显示等待HeatingUI 显示加热动画Boiling提示沸腾、触发事件 4. 案例效果图示意 [加热按钮] → 水壶状态变化 Idle → Heating → Boiling 每个状态显示不同UI/提示5. 代码实现5.1 状态接口IState public interface IState {void Enter(); // 进入状态void Execute(); // 状态行为void Exit(); // 退出状态 }5.2 具体状态类IdleState using UnityEngine;public class IdleState : IState {private WaterStateMachine water;public IdleState(WaterStateMachine water) { this.water water; }public void Enter() { Debug.Log(进入空闲状态); }public void Execute() { /* 等待加热 */ }public void Exit() { Debug.Log(退出空闲状态); } } HeatingState using UnityEngine;public class HeatingState : IState {private WaterStateMachine water;public HeatingState(WaterStateMachine water) { this.water water; }public void Enter() { Debug.Log(开始加热); }public void Execute(){water.Temperature 10 * Time.deltaTime;Debug.Log($加热中温度{water.Temperature:F1}℃);if (water.Temperature 100){water.ChangeState(new BoilingState(water));}}public void Exit() { Debug.Log(停止加热); } } BoilingState using UnityEngine;public class BoilingState : IState {private WaterStateMachine water;public BoilingState(WaterStateMachine water) { this.water water; }public void Enter() { Debug.Log(水已沸腾); }public void Execute() { /* 持续沸腾逻辑 */ }public void Exit() { Debug.Log(退出沸腾状态); } } 5.3 状态管理器WaterStateMachine using UnityEngine;public class WaterStateMachine : MonoBehaviour {private IState currentState;public float Temperature { get; set; } 20f;private void Start(){ChangeState(new IdleState(this));}private void Update(){currentState?.Execute();}public void ChangeState(IState newState){currentState?.Exit();currentState newState;currentState?.Enter();}// 按钮点击调用public void StartHeating(){ChangeState(new HeatingState(this));} }5.4 UI 控制状态切换按钮 using UnityEngine; using UnityEngine.UI;public class WaterUI : MonoBehaviour {[SerializeField] private Button heatButton;[SerializeField] private WaterStateMachine waterMachine;private void Start(){heatButton.onClick.AddListener(() waterMachine.StartHeating());} }6. 运行流程初始状态Idle点击 加热按钮 → 状态切换到 Heating温度持续上升HeatingState.Execute 检测温度温度 100 → 状态切换到 Boiling每个状态 Enter/Execute/Exit 行为独立 7. 注意事项总结每个状态类应只关注自身行为状态切换统一通过 ChangeState() 管理避免在状态类中直接操作其他状态Update 内只调用当前状态 Execute 8. 扩展思考可以结合 观察者模式状态变化通知 UI/日志可以结合 策略模式不同实验对象有不同加热策略可以增加 Idle→CoolingState模拟自然冷却 9. 总结通过这个虚拟仿真案例你学会了使用 状态模式 管理实验对象行为每个状态独立、可扩展避免大量 if-else使虚拟实验逻辑清晰 状态模式 观察者模式 可以让虚拟实验系统既灵活又可维护。
http://www.zqtcl.cn/news/461581/

相关文章:

  • 乐清网站建设服务定制企业网站建设
  • 简单公司网站模版百度站长工具抓取诊断
  • 网站建设与管理维护 大学论文铁路建设单位网站
  • 贵州企业展示型网站建设wordpress文章点不开
  • 毕业设计可以做网站吗网页版征信报告查询
  • 企业网站每年的费用钢筋网片每平米重量
  • 做网站是属火的职业吗苏州网站建设信息网络
  • 怎么自己建一个论坛网站如何做中国古城的网站
  • 做网站表格网站建设综合实训案例
  • vs2012 网站开发wordpress好看的页面跳转
  • 阿里去要企业网站建设方案书小程序开发 杭州
  • 微信公众号文档网站开发与优化课程总结
  • 网站建设网课海东营销网站建设公司
  • 仿站工具教程视频宣传片免费模板
  • 美食网站建设项目分析报告莱芜都市网人才招聘
  • js做网站福田网站设计公司
  • 郑州做网站好长春市建设工程信息网站
  • 题库网站怎么做做网站文件夹都起什么名字
  • 河南网站怎么备案东台市住房和建设局网站
  • 有什么手机做网站的asp.net网站安全
  • 怎么做查询网站后台做爰的视频网站
  • 迪虎科技网站建设国际市场那个app可以看
  • 怎么做跳转不影响原网站排名wordpress添加邮箱设置
  • 网站内容规范外贸电商怎么做
  • 郑州做网站齿轮wordpress 文章h标签美化
  • 建设银行网站怎么修改手机号码吗网站建设怎样容易
  • 网站建设风险管理计划书户外媒体网站建设免费
  • 学到什么程度可以做网站网站维护的要求包括
  • 泉州网站设计平台南阳响应式网站
  • 阿里云 企业网站选哪种推广普通话的文字内容