设计模式-状态模式(二)
(相关资料图)
状态模式的示例
为了更好地理解状态模式的实现,我们可以以一个简单的售货机为例。假设有一个售货机,它有三种状态:待机状态(IdleState)、售出状态(SoldState)和赠品状态(WinnerState)。当用户投入硬币时,售货机会根据当前状态的不同做出相应的响应。
下面是状态模式的具体实现。
上下文(Context)
我们定义一个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()。
关键词:
上一篇:直降800元+赠599元耳机:三星S23手机256G版489
下一篇:最后一页
广告
X 关闭
X 关闭
-
-
京张高铁每日开行17对冬奥列车
京张高铁每日开行17对冬奥列车 预计冬奥服务保障期运送运动员、技术官员、持票观众等20万人次 2月6日,2022北京新闻中心举行“北
-
-
北京冬奥会开幕式上 小学生朱德恩深情演绎《我和我的祖国》
北京冬奥会开幕式上 小学生朱德恩深情演绎《我和我的祖国》 9岁小号手苦练悬臂吹响颂歌 2月4日晚,在北京冬奥会开幕式上,9岁的
-
-
2022北京冬奥会开幕式这19首乐曲串烧不简单
多名指挥家列曲目单 再由作曲家重新编曲 本报专访冬奥开幕式音乐总监赵麟 开幕式这19首乐曲串烧不简单 “二十四节气”倒计时、
-
-
“一墩难求” 冰墩墩引爆购买潮
设计师:没想到冰墩墩成爆款一墩难求冰墩墩引爆购买潮 北京冬奥组委:会源源不断供货北京冬奥会吉祥物冰墩墩近日引爆购买潮,导致一墩难求
- 1、设计模式-状态模式(二)
- 2、直降800元+赠599元耳机:三星S23手机256G版489
- 3、山西推出十余项夏季赛事 涵盖橄榄球、电竞等多个项目
- 4、电竞国家队如何产生?它和传统体育项目不太一样
- 5、外媒:泽连斯基访德消息被提前曝光,柏林警方开始“找内鬼”
- 6、天天看热讯:apex加速器推荐 超好用的apex免费加速器
- 7、三利谱:首先投资3亿 建设1720和2520毫米偏光片生产线
- 8、【劳动者风采】延长气田采气五厂油气工程建设大队:吹响先锋号 干到底 干出彩
- 9、《崩坏:星穹铁道》雅利洛边缘通路宝箱收集攻略
- 10、关注学生心理健康,提升家校共育水平:合肥市第四十七中学举办家长学校交流会_焦点日报
