阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。 [说明] 某大型商场内安装了多个简易的纸巾售卖机,自动出售2元钱一包的纸巾,且每次仅售出一包纸巾。纸巾售卖机的状态图如图6-1所示。 采用状态(State)模式来实现

admin2012-03-21  35

问题 阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。
   [说明]
   某大型商场内安装了多个简易的纸巾售卖机,自动出售2元钱一包的纸巾,且每次仅售出一包纸巾。纸巾售卖机的状态图如图6-1所示。

采用状态(State)模式来实现该纸巾售卖机,得到如图6-2所示的类图。其中类State为抽象类,定义了投币、退币、出纸巾等方法接口。类SoldState、SoldOutState、NoQuarterState和HasQuarterState分别对应图6-1中纸巾售卖机的4种状态:售出纸巾、纸巾售完、没有投币、有2元钱。

[Java代码]
   import java.util.*;
   interface State  {
   public  void  insertQuarter();    //投币
   public  void  ejectQuarter();     //退币
   public  void  turnCrank();       //按下“出纸巾”按钮
   public void dispense();    //出纸巾
   }
   class TissueMachine  {
         (1)   soldOutStater noQuarterState, hasQuarterState, soldState,state;
       state - soldOutState;
       int count=0;                           //纸巾数
       public TissueMachine (int numbers)  {  /*实现代码省略*/}
   public State getHasQuarterState()    {  return hasQuarterState;    }
       public State getNoQuarterState()    {  return noQuarterState;    }
       public State getSoldState()    {  return soldState;    }
       public State getSoldOutState()    {  return soldOutState;    }
       public int getCount()           {  return count;    }
   //其余代码省略
   }
   class NoQuarterState implements State  {
       TissueMachine tissueMachine;
       public void insertQuarter()  {
           tissueMachine. setState(  (2)  );
   }
   //构造方法以及其余代码省略
   }
   class HasQuarterState implements State  {
       TissueMachine tissueMachine;
       public void ejectQuarter()  {
           tissueMachine.setState(  (3)  );
       }
   //构造方法以及其余代码省略
   }
   class SoldState implements State  {
       TissueMachine tissueMachine;
       public void dispense()  {
           if(tissueMachine .getCount()>0)    {
           tissueMachine.setState(  (4)  );
   }else  {
           tissueMachine.setState(  (5)  );  }
       }
   }
(1)

选项

答案State

解析
转载请注明原文地址:https://jikaoti.com/ti/6ui7FFFM
0

相关试题推荐
随机试题
最新回复(0)