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

老电脑做网站服务器成都网络营销公司排名

老电脑做网站服务器,成都网络营销公司排名,公路建设查询网站,古交市网站建设公司状态模式案例解析:三态循环灯的实现 案例概述 本案例使用 状态模式(State Pattern) 实现了一个 三态循环灯 的功能。每点击一次按钮,灯的状态会按顺序切换(状态1 → 状态2 → 状态3 → 状态1...)&#xff…

状态模式案例解析:三态循环灯的实现

 案例概述

本案例使用 状态模式(State Pattern) 实现了一个 三态循环灯 的功能。每点击一次按钮,灯的状态会按顺序切换(状态1 → 状态2 → 状态3 → 状态1...),并在每次切换时弹出一个消息框显示当前状态。此外,还提供了 重置 功能,可以将灯的状态恢复到初始值。

Light类实现

public class Light
{public LightStateInterface Lightstate { get; set; } // 当前状态public Light(){Lightstate = new OnLight1(); // 初始状态为 OnLight1}public void Set(){Lightstate.btn_切换(this); // 调用当前状态的切换方法}public void reset(){Lightstate = new OnLight1(); // 重置为初始状态}
}

灯状态接口定义:

public interface LightStateInterface
{void btn_切换(Light mylight); // 切换状态的方法
}

OnLight1(状态1)

class OnLight1 : LightStateInterface
{public void btn_切换(Light mylight){System.Windows.Forms.MessageBox.Show("灯-1"); // 显示当前状态mylight.Lightstate = new OnLight2(); // 切换到状态2}
}

OnLight2(状态2)

class OnLight2 : LightStateInterface
{public void btn_切换(Light mylight){System.Windows.Forms.MessageBox.Show("灯-2"); // 显示当前状态mylight.Lightstate = new OnLight3(); // 切换到状态3}
}

OnLight3(状态3)

class OnLight3 : LightStateInterface
{public void btn_切换(Light mylight){System.Windows.Forms.MessageBox.Show("灯-3"); // 显示当前状态mylight.Lightstate = new OnLight1(); // 切换回状态1}
}

winform调用案例:

在 WinForm 界面上提供 切换 和 重置 按钮,代码:

    public partial class Form1 : Form{public Form1(){InitializeComponent();}Light light = new Light(); // 创建 Light 对象private void btn_切换灯_Click(object sender, EventArgs e){light.Set(); // 切换状态}private void btn_重置_Click(object sender, EventArgs e){light.reset(); // 重置状态}}

状态模式的核心思想

(1)状态模式的定义

状态模式是一种 行为型设计模式,允许对象在 内部状态改变时改变其行为,看起来像是修改了它的类。

(2)状态模式的优点

  • 符合开闭原则:新增状态时无需修改现有代码,只需新增类。

  • 消除复杂条件语句:避免 if-else 或 switch-case 判断状态。

  • 状态转换逻辑清晰:每个状态类负责自己的转换逻辑。

(3)适用场景

  • 对象的行为取决于它的状态,并且需要在运行时动态切换。

  • 代码中包含大量与状态相关的条件语句时,可以用状态模式优化。

 

http://www.dtcms.com/wzjs/379001.html

相关文章:

  • java如何进行网站开发百度广告投放
  • 网站建设心得竞价托管外包哪家好
  • 济南网站建设找老兵广告联盟平台入口
  • 周口师范做网站河南郑州最新事件
  • 淘宝网站建设策划书今日热搜榜排名
  • 现在做网站怎么样西安网站建设哪家好
  • 做网站建设的工资高吗网上销售哪些平台免费
  • 如何做网站视频模板管理培训机构
  • 网站面包屑导航设计特点怎么联系百度人工服务
  • 安徽省建设厅网站人员管理广州网络seo公司
  • 黄浦上海网站建设灰色词快速排名接单
  • 拓客平台有哪些英语seo
  • 高校学校网站建设seo如何提高网站排名
  • 微信网站建设热线百度服务平台
  • 泰安网站建设策划方案百度注册新账号
  • 北京建网站公司微信小程序官网
  • 图片上传网站制作上海网站关键词排名
  • 杭州网站建设哪家比较好一键优化清理加速
  • 做卖车网站需要什么手续费沈阳cms模板建站
  • 手机网站制作公司 广州优化一个网站需要多少钱
  • 为什么做网站结构优化网站建设制作费用
  • 天河区住房和建设水务局网站google搜索入口
  • 游戏公司做网站百度知道一下
  • 温州网站设计猪八戒网接单平台
  • 广西免费网站制作友好链接
  • 武汉网站建设推广百度做广告多少钱
  • 怎么在试客网站做佣金单网页推广方案
  • 英文网站建设方案模板高校视频推广
  • 天津网站推广设计网络营销方案
  • 学校网页网站模板免费下载全网推广怎么做