
为了更好地理解状态模式的实现,我们可以以一个简单的售货机为例。假设有一个售货机,它有三种状态:待机状
腾讯云 2023-05-05 14:29:25
(资料图)
为了更好地理解状态模式的实现,我们可以以一个简单的售货机为例。假设有一个售货机,它有三种状态:待机状态(IdleState)、售出状态(SoldState)和赠品状态(WinnerState)。当用户投入硬币时,售货机会根据当前状态的不同做出相应的响应。
下面是状态模式的具体实现。
我们定义一个VendingMachine类作为上下文类,它包含一个状态对象和一个状态切换方法。
public class VendingMachine { private State currentState; private int count; public VendingMachine(int count) { this.count = count; currentState = new IdleState(this); } public void setCurrentState(State currentState) { this.currentState = currentState; } public void insertCoin() { currentState.insertCoin(); } public void pressButton() { currentState.pressButton(); } public void dispense() { currentState.dispense(); } public int getCount() { return count; } public void setCount(int count) { this.count = count; }}
在VendingMachine类中,我们定义了一个当前状态对象currentState和一个商品数量count。在VendingMachine类的构造函数中,我们将当前状态设置为待机状态(IdleState)。VendingMachine类还定义了一些方法,包括状态切换方法setCurrentState()、插入硬币方法insertCoin()、按下按钮方法pressButton()、发放商品方法dispense()和获取商品数量方法getCount()。
为了更好地理解状态模式的实现,我们可以以一个简单的售货机为例。假设有一个售货机,它有三种状态:待机状
1、不推荐使用Axure8 0,因为现在还是测试版,很多东西都不稳定,而且本着Axure一直坑爹的传统,Axure7 0
挖贝网5月5日,利洋股份(870727)近日发布2022年年度报告,报告期内公司实现营业收入136,028,646 89元,同
1、孝义市文苑社区志愿服务支队是由孝义市新时代文明实践崇文街道志愿服务大队领导下的志愿团体。2、成立于
川渝特高压工程的起点站开建,5月4日,甘孜1000千伏特高压变电站主体在四川正式开工建设,这也是目前我国在
凯奥净化2022年净利1908 59万同比增长16 23%产能大幅增加、销售收入同比增长2023 5 511:45:22挖贝网白莹挖贝网5月5日,
观点网讯。5月5日,有市场消息指出,联邦快递计划将亚太区总部从香港迁至新加坡,将在新加坡整合部分亚太、
北京市交通委、交通运行监测调度中心提示,5月6日(周六)上班,不限行,预计城市路网压力将高于常规工作日
四川水井坊股份有限公司于4月28日发布2022年年度报告。年报显示,公司在报告期内实现营收46 73亿元,同比增
知道身边AED的位置,你也可以挽救生命。在公共场所布设AED,是一个城市文明程度的重要标志,也是构建公共
在曼联对布莱顿的英超联赛前,主帅滕哈格送给前红魔中场保罗·因斯一瓶红酒。90分钟之后,他的球队将3分拱
建中医疗2022年净利1417 89万同比增长49 12%各项费用控制有效2023 5 59:07:00挖贝网苏言挖贝网5月5日,建中医疗(430
作者|陈法善编辑|刘杨上海虹桥站去往全国的火车票售罄,圆明园门票163年来首次售罄,单日超16万人“进淄赶
大河网讯时代各有不同,青春一脉相承。104年前的今天,五四运动爆发。百余年来,中国青年一代又一代接续奋
1、心猿意马、认贼作父、东窗事发非言非语、蝇营狗狗、有始无终三心二意、为非作歹、胡言乱语为虎作伥、小