欢迎来到天天文库
浏览记录
ID:38520504
大小:108.00 KB
页数:10页
时间:2019-06-14
《大学设计模式课程实用代码大全代码》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、淘宝店530213测试类TestpublicclassTest{publicstaticvoidmain(String[]args){Liftlift=newLift();newUser(lift).gotoFloor();lift.operate();}}电梯类Liftimportjava.util.*;publicclassLift{booleandoorState=true;//true开,false关intcurrentFloor=1;ArrayListholdList=newArray
2、List();LiftStatestate;publicLift(){state=newHold(this);}publicvoidsetDoorState(booleandoorstate){this.doorState=doorstate;}publicvoidsetState(LiftStatestate){this.state=state;}publicLiftStategetState(){returnthis.state;}publicvoidopenDoor(){setDoorSt
3、ate(true);System.out.println("电梯门已开,请抓紧进出!");}publicvoidcloseDoor(){setDoorState(false);System.out.println("电梯门已关,即将运行!");}publicvoidmove(intfrom,intto){if(from4、1;ito){System.out.println("电梯现在"+from+"楼,即将"+this.state.stateName+"到"+to+"楼");for(inti=from-1;i>5、to;i--){System.out.println("已到达"+i+"楼,不停");this.currentFloor=i-1;try{Thread.sleep(1000);}catch(InterruptedExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}}}}publicintgetNextFloor(){return(Integer)(holdList.iterator().next());}publicvoi6、doperate(){this.state.operate();}}状态类LiftStateabstractclassLiftState{protectedLiftlift;StringstateName;publicLiftState(LiftStateoldstate){this.lift=oldstate.lift;}publicLiftState(){}publicvoidopenDoor(){lift.setDoorState(true);System.out.println("电梯门7、已开,请抓紧进出!");}publicvoidcloseDoor(){lift.setDoorState(false);System.out.println("电梯门已关,即将运行!");}publicabstractvoidoperate();}使用者类Userimportjava.io.*;importjava.util.Scanner;publicclassUser{Liftlift;publicUser(Liftlift){this.lift=lift;}publicvoidgotoFl8、oor(){Scannersc=newScanner(System.in);//获取键盘输入intnextFloor=sc.nextInt();lift.holdList.add(nextFloor);System.out.println("有人要去"+nextFloor+"楼");}}就绪类Holdimportjava.util.Currency;publicclassHoldextendsLiftState{publicHold(Liftlift){this.lift=lift;this.s
4、1;ito){System.out.println("电梯现在"+from+"楼,即将"+this.state.stateName+"到"+to+"楼");for(inti=from-1;i>
5、to;i--){System.out.println("已到达"+i+"楼,不停");this.currentFloor=i-1;try{Thread.sleep(1000);}catch(InterruptedExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}}}}publicintgetNextFloor(){return(Integer)(holdList.iterator().next());}publicvoi
6、doperate(){this.state.operate();}}状态类LiftStateabstractclassLiftState{protectedLiftlift;StringstateName;publicLiftState(LiftStateoldstate){this.lift=oldstate.lift;}publicLiftState(){}publicvoidopenDoor(){lift.setDoorState(true);System.out.println("电梯门
7、已开,请抓紧进出!");}publicvoidcloseDoor(){lift.setDoorState(false);System.out.println("电梯门已关,即将运行!");}publicabstractvoidoperate();}使用者类Userimportjava.io.*;importjava.util.Scanner;publicclassUser{Liftlift;publicUser(Liftlift){this.lift=lift;}publicvoidgotoFl
8、oor(){Scannersc=newScanner(System.in);//获取键盘输入intnextFloor=sc.nextInt();lift.holdList.add(nextFloor);System.out.println("有人要去"+nextFloor+"楼");}}就绪类Holdimportjava.util.Currency;publicclassHoldextendsLiftState{publicHold(Liftlift){this.lift=lift;this.s
此文档下载收益归作者所有