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

网页设计知名网站无锡大型网站建设

网页设计知名网站,无锡大型网站建设,个人网页设计作品模板简单抑郁症,国家高新技术企业所得税税率状态模式是什么? 状态模式,也被称作状态对象模式,是一种行为设计模式。 当一个对象的内在状态改变时,允许改变其行为,这个对象看起来像是改变了其类。 它让对象在其内部状态改变时改变自己的行为。外部调用者无需了…

状态模式是什么?

状态模式,也被称作状态对象模式,是一种行为设计模式。

当一个对象的内在状态改变时,允许改变其行为,这个对象看起来像是改变了其类。

它让对象在其内部状态改变时改变自己的行为。外部调用者无需了解对象内部状态的具体实现,仅需通过简单的接口进行交互

状态模式适用于哪些场景?

当你的对象基于其状态有不同的行为,并且其状态可以在运行时动态转换时,你应该考虑使用状态模式。

如何在Java中实现状态模式?——自动贩卖机

让我们以一个简单的售卖饮料的自动贩卖机为例,来展示如何在Java中实现状态模式。我们首先定义一个状态接口:

public interface State {void insertCoin();void pushButton();void dispense();
}

然后,我们为自动贩卖机的每一种状态实现该接口:

public class NoCoinState implements State {public void insertCoin() {// 接收硬币,并转换状态}public void pushButton() {// 提示用户先投币}public void dispense() {// 无行为}
}public class HasCoinState implements State {public void insertCoin() {// 提示用户已经投过币了}public void pushButton() {// 检查库存,然后转换状态}public void dispense() {// 无行为}
}public class SoldState implements State {public void insertCoin() {// 提示用户等待饮料出货}public void pushButton() {// 提示用户等待饮料出货}public void dispense() {// 出货,然后转换状态}
}

最后,我们实现自动贩卖机类:

public class VendingMachine {private State noCoinState;private State hasCoinState;private State soldState;private State state;  // 当前状态public VendingMachine() {noCoinState = new NoCoinState();hasCoinState = new HasCoinState();soldState = new SoldState();state = noCoinState;  // 初始状态}public void insertCoin() {state.insertCoin();}public void pushButton() {state.pushButton();state.dispense();}// 其他方法,例如改变状态...
}

这样,我们的自动贩卖机就可以根据自身的状态决定相应的行为,而无需在一个方法中使用大量的条件语句来判断状态。此外,如果未来我们需要添加更多的状态或者行为,我们也可以很容易地进行拓展。

另一个例子——音频播放器

让我们从一个现实生活的例子看一看状态模式如何被运用到音频播放器的开发中。

音频播放器根据用户的操作和播放条件,可能有多种的状态:例如,“播放状态”,“暂停状态”,“停止状态"和"缓冲状态”。不同的状态下,音频播放器的响应行为可能会不同。

首先,定义一个状态接口:

public interface State {void play();void pause();void stop();void buffer();
}

然后,实现播放器的每一个状态:

public class PlayingState implements State {public void play() {// 无响应或提示正在播放}public void pause() {// 暂停播放,并转换到暂停状态}public void stop() {// 停止播放,并转换到停止状态}public void buffer() {// 无行为或转到缓冲状态}
}// 类似的,我们还可以定义PauseState、StopState和BufferingState类

在定义了各种状态以后,我们就可以在音频播放器类中使用这些状态:

public class AudioPlayer {private State playingState;private State pauseState;private State stopState;private State bufferingState;private State state;  // 当前状态public AudioPlayer() {playingState = new PlayingState();pauseState = new PauseState();stopState = new StopState();bufferingState = new BufferingState();state = stopState;  // 初始状态}public void play() {state.play();}public void pause() {state.pause();}public void stop() {state.stop();}public void buffer() {state.buffer();}// 其他方法,例如改变状态...
}

这样,音频播放器就可以根据当前的状态来进行不同的操作,比如在"播放状态"下如果用户按了播放按钮,播放器可以选择无响应或者给出正在播放的提示,而在"暂停状态"下则会恢复播放。这就是状态模式的魅力,使得音频播放器的代码更易于管理和维护。如果我们需要添加新的状态或行为,也可以轻松地进行拓展。希望通过这篇博文,你能对状态模式有更深入的理解和应用。

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

相关文章:

  • 福州百度网站快速优化长宁手机网站建设
  • 广东哪里网站建设wordpress js广告
  • 易语言对做网站有什么帮助社交网站开发语言
  • 大学校园门户网站建设方案网站友情链接交易平台
  • 网站开发服务费合同范本太原网站建设-中国互联
  • 招生网站开发网页制作重庆
  • 求职网站网页模板下载西安网页设计教育培训机构
  • 网站建设哪家便青岛网信信息科技有限公司
  • 网站建设和平面设计夜晚很晚视频免费素材网站
  • seo招聘的关键词优化技术基础
  • 大气娱乐搞笑网站源码广州地铁18号线最新线路图
  • 中小企业一站式服务平台网页传奇游戏排行榜2014前十名
  • 周村网站建设yx718做英文网站有哪些
  • 适合学生做的网站南宁手机网站设计策划
  • wordpress 图片站模板wordpress设置会员有效期
  • 做捕鱼网站电话黄冈市建设银行网站
  • 网站建设公司上海做网站公司哪家好外贸互联网推广的
  • 免费手机建网站有哪些软件百度熊掌号wordpress
  • wap网站e4a做appwordpress定时备份
  • 做网站有要求吗珠宝商城网站模板免费下载
  • 常熟市建设局网站长沙网站
  • 1688的网站特色有人免费资源吗
  • 广东官网网站建设哪家好wordpress资源下载页面
  • 米拓建站教程网站开发维护成本
  • 网站开发设计方案外汇网站建设公司
  • 健身网站开发过程中遇到的麻烦平面设计速成班多少钱
  • 做药材有什么好的网站中化山东公路建设集团网站
  • seo管理系统培训seo网络推广是什么意思
  • 网站的建设维护及管理制度合肥网站建设培训机构
  • 住房城乡建设厅网站西宁市城中区建设局网站