全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
状态模式类图代码public interface State public void insertQuarter();public void ejectQuarter();public void turnCrank();public void dispense();public class SoldOutState implements State GumballMachine gumballMachine;public SoldOutState(GumballMachine gumballMachine)this.gumballMachine=gumballMachine;public void insertQuarter()System.out.println(You cant inserted a quarter,the machine is sold out);public void ejectQuarter()System.out.println(You cant ejest,you havent inserted a quarter yet);public void turnCrank()System.out.println(You turned,but there are no gumballs);public void dispense()System.out.println(No gumball dispensed);public class SoldState implements State GumballMachine gumballMachine;public SoldState(GumballMachine gumballMachine)this.gumballMachine=gumballMachine;public void insertQuarter()System.out.println(Please wait,were already giving you a gumball);public void ejectQuarter()System.out.println(Sorry,you already turned the crank);public void turnCrank()System.out.println(Turning twice doesnt get you another gunball!);public void dispense()gumballMachine.releaseBall();if(gumballMachine.getCount()0)gumballMachine.setState(gumballMachine.getNoQuarterState();elseSystem.out.println(Oops,out of gumballs!);gumballMachine.setState(gumballMachine.getSoldOutState();public class HasQuarterState implements State GumballMachine gumballMachine;public HasQuarterState(GumballMachine gumballMachine)this.gumballMachine=gumballMachine;public void insertQuarter()System.out.println(You cant inserted anther quarter);public void ejectQuarter()System.out.println(Quarter returned);gumballMachine.setState(gumballMachine.getNoQuarterState();public void turnCrank()System.out.println(You turned.);gumballMachine.setState(gumballMachine.getSoldState();public void dispense()System.out.println(No gumball dispensed);public class NoQuarterState implements State GumballMachine gumballMachine;public NoQuarterState(GumballMachine gumballMachine)this.gumballMachine=gumballMachine;public void insertQuarter()System.out.println(You inserted a quarter);gumballMachine.setState(gumballMachine.getHasQuarterState();public void ejectQuarter()System.out.println(You havent inserted a quarter);public void turnCrank()System.out.println(You turned,but theres no quarter);public void dispense()System.out.println(You need to pay first);5public class GumballMachine State soldOutState;State noQuarterState;State hasQuarterState;State soldState;State state=soldOutState;int count=0;public GumballMachine(int numberGumballs)soldOutState=new SoldOutState(this);noQuarterState=new NoQuarterState(this);hasQuarterState=new HasQuarterState(this);soldState=new SoldState(this);this.count=numberGumballs;if(numberGumballs0)state=noQuarterState;public void insertQuarter()state.insertQuarter();public void ejectQuarter()state.ejectQuarter();public void turnCrank()state.turnCrank();state.dispense();void setState(State state)this.state=state;void releaseBall()System.out.println(A gumball comes rolling out the slot.);if(count!=0)count-;public State getSoldOutState()return soldOutState;public State getNoQuarterState()return noQuarterState;public State getHasQuarterState()return hasQuarterState;public State getSoldState()return soldState;public int getCount()return count;public String toString()if(count=0)return Mighty Gumball,Inc.nJava_enabled Standing Gumball Model #2004nInventory: +count+gumballsnMachine is sold outn;return Mighty Gumball,Inc.nJava_enabled Standing Gumball Model #2004nInventory: +count+gumballsnMachine is waiting for quartern;public class GumballMachineTestDrive public static void main(Stringargs)GumballMachine gumballMachine=new GumballMachine(5);System.out.println(gumballMachine);gumballMachine.insertQuarter();gumballMachine.turnCrank();System.out.println(gumballMachine);gumballMachine.insertQuarter();gumballMachine.ejectQuarter();gumballMachine.turnCrank();System.out.println(gumballMachine);gumballMachine.insertQuarter();gumballMachine.turnCrank();gumballMachine.insertQuarter();gumballMachine.turnCrank();gumballMachine.ejectQuarter();System.out.println(gumballMachine);gumballMachine.insertQuarter();gumballMachine.insertQuarter();gumballMachine.turnCrank();gumballMachine.insertQuarter();gumballMachine.turnCrank();gumballMachine.insertQuarter();gumballMachine.turnCrank();System.out.println(gumballMachine);测试结果Mighty Gumball,Inc.Java_enabled Standing Gumball Model #2004Inventory: 5gumballsMachine is waiting for quarterYou inserted a quarterYou turned.A gumball comes rolling out the slot.Mighty Gumball,Inc.Java_enabled Standing Gumball Model #2004Inventory: 4gumballsMachine is waiting for quarterYou inserted a quarterQuarter returnedYou turned,but theres no quarterYou need to pay firstMighty Gumball,Inc.Java_enabled Standing Gumball Model #2004Inventory: 4gumballsMachine is waiting for quarterYou inserted a quarterYou turned.A gumball comes rolling out the slot.You inserted a quarterYou turned.A gumball comes rolling out the slot.You havent inserted a quarterMighty Gumball,Inc.Java_enabled Standing Gumball Model #2004Inventory: 2gumballsMachine is waiting for quarterYou inserted a quarterYou cant inserted anther quarterYou turned.A gumball comes rolling out the slot.You inserted a quarter
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年新能源行业企业数字化转型与市场风险预测报告
- 2025年温州瑞安市国有资产投资集团有限公司下属子公司公开招聘市场化工作人员2人笔试考试参考题库及答案解析
- 2025年新能源行业供应链绿色认证体系对企业竞争力的提升报告
- 2025东莞理工学院校内招聘国际设计学院(筹)教学秘书考试笔试备考题库及答案解析
- 《JBT10324-2002 电气设备机柜通 用技术条件》(2026年)实施指南
- 2026陕西省面向电子科技大学招录选调生考试笔试备考试题及答案解析
- 2025江西省鹰潭产融私募基金管理有限公司投资经理招聘3人考试笔试参考题库附答案解析
- 平昌县县级医疗机构公开选调工作人员(15人)笔试考试备考题库及答案解析
- 《JBT9168.9-1998 切削加工通 用工艺守则齿轮加工》(2026年)实施指南
- 《JBT9162.46-1999 固定顶尖座尺寸》(2026年)实施指南
- 2025年陕西省事业单位劳动合同书
- 2024年西安外事学院《形势与政策》期末考试试题预测试卷含答案详解(能力提升)
- 2025年民航招飞心理测试试题及答案
- 2025秋季学期国开电大法学本科《国际私法》期末纸质考试总题库珍藏版
- (已压缩)国民体质测定标准(2023年修订)
- 合同完工验收方案(3篇)
- (正式版)DB14∕T 3556-2025 《食品生产企业信用风险分级指南》
- DB61T 1381-2020 养老机构医疗护理服务规范
- 药房知识技能培训课件
- 007能源内审检查表
- 年产4500吨功能性糖醇项目可行性研究报告
评论
0/150
提交评论