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

佛山网站建设电话工业设计专业介绍

佛山网站建设电话,工业设计专业介绍,济南百度开户电话,找到做网站的公司状态模式(State Pattern) 状态模式是一种行为设计模式,允许一个对象在其内部状态改变时改变它的行为。这种模式通过把状态的变化逻辑分布到State的子类之间,减少了相互间的依赖,使得状态的切换更加清晰。 状态模式的…

状态模式(State Pattern)

状态模式是一种行为设计模式,允许一个对象在其内部状态改变时改变它的行为。这种模式通过把状态的变化逻辑分布到State的子类之间,减少了相互间的依赖,使得状态的切换更加清晰。

状态模式的关键是将那些会随着状态改变而改变的行为抽离出来,使得状态和行为可以独立变化,不同状态下的行为可以分别管理和修改,增加新的状态或者改变状态间的转换逻辑变得更加容易。

使用状态模式的好处:
  • 封装了转换规则:状态之间的转换操作被封装在状态类中,易于修改和扩展。
  • 消除了庞大的条件分支语句:状态模式通过多态性来消除原本过多的条件分支语句。
  • 将状态的逻辑与对象的其它行为分离:这有助于集中处理对象在某一状态下的行为。

示例:简单的工作状态切换

假设我们有一个工作任务(Task)对象,这个对象有几个状态:New(新创建的任务),InProgress(正在进行的任务),Completed(已完成的任务)。我们可以使用状态模式来设计这个场景。

步骤 1:定义状态接口

首先,定义一个状态接口和实现该接口的具体状态类。

interface State {void proceed(Task task);
}class New implements State {public void proceed(Task task) {System.out.println("Task is starting.");task.setState(new InProgress());}
}class InProgress implements State {public void proceed(Task task) {System.out.println("Task is in progress.");task.setState(new Completed());}
}class Completed implements State {public void proceed(Task task) {System.out.println("Task is already completed.");}
}
步骤 2:创建 Context 类

然后,创建包含状态的Task类。

class Task {private State state;public Task() {// 任务默认状态为 Newthis.state = new New();}public void setState(State state) {this.state = state;}public void proceed() {state.proceed(this);}
}
步骤 3:使用状态模式

最后,演示如何使用状态模式来改变Task对象的状态。

public class StatePatternDemo {public static void main(String[] args) {Task task = new Task();task.proceed(); // Task is starting.task.proceed(); // Task is in progress.task.proceed(); // Task is already completed.}
}

在这个示例中,Task对象的行为随着其内部状态的改变而改变,而且状态的变更逻辑被封装在状态对象内部。这样,如果未来需要添加新的状态或者改变状态转换的逻辑,我们只需要修改或添加相应的状态类,而不需要触及到Task类的内部逻辑,这就是使用状态模式的好处。

http://www.yayakq.cn/news/159179/

相关文章:

  • 网业上有错误怎么解决东莞网站优化建设团队
  • 青岛网站排名优化公司哪家好一个网站上线的时间
  • jsp做网站用什么封装字符串社交网络推广方法
  • 网站播放图片多大合适湖北洈水水利水电建设公司网站
  • 网站建设专业团队图片网页编辑超级工具箱
  • 合肥手机建站模板2345网址大全设主页访问
  • 贵州建设厅考试网站准考证下载旅游网站只做
  • 中国勘察设计行业信息化建设网站wordpress 分类 文章数量
  • 无锡网站建设在哪里官方网站怎样做
  • c 网站开发流程图cpa网站建设
  • 石岩做网站扬州市城乡建设局网站
  • 在线学习网站模板毕业设计查资料的网站
  • 网站制作费用多少钱网站支付功能建设
  • 国外网站建设模板wordpress 彩色标签云插件
  • 自贡做网站关于销售网站有哪些内容
  • 做微信公众号的是哪个网站查看wordpress密码
  • 试用型网站wordpress 图片属性
  • 池州网站建设兼职国外建站vps
  • 网站开发公司交易流程网站备案 湖北
  • 做网站没有创意哪些做网站的公司比较好
  • 长沙网站seo优化排名登录中国沈阳网站
  • 空白网站怎么建立旅游微信网站建设
  • seo移动网站页面怎么做app软件开发公司怎么选
  • 车床加工东莞网站建设名词解释响应式网页设计
  • 阿里巴巴开通诚信通后网站怎么做济南网站优化公司艾乎网
  • 哪些网站做家政推广怎么建立一个公司的网站
  • w5500做服务器网站怎么注销建设银行网站用户
  • 素材搜集网站网站制作可以
  • 响应式模板网站模板下载外贸网站建设深圳
  • 做外贸上哪些网站代刷推广网站