问答题X 纠错
阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。
其中类State为抽象类,定义了投币、退币、出纸巾等方法接口。类SoldState、SoldOutState、NoQuarterState和HasQuarterState分别对应图10.37中纸巾售卖机的4种状态:售出纸巾、纸巾售完、没有投币、有2元钱。
说明:某大型商场内安装了多个简易的纸巾售卖机,自动售出2元钱一包的纸巾,且每次仅售出一包纸巾。纸巾售卖机的状态如图10.37所示。采用状态(State)模式来实现该纸巾售卖机,得到如图10.38所示的类图。
(1)State
(2)tissueMachinE.getHasQuarterState()或newHasQuarterState()或tissueMachinE.HasQuarterState()
(3)tissueMachinE.getNoQuarterState()或newNoQuarterState()或tissueMachinE.NoQuarterState()
(4)tissueMachinE.getNoQuarterState()或newNoQuarterState()或tissueMachinE.NoQuarterState()
(5)tissueMachinE.getSoldOutState()或newSoldOutState()或tissueMachinE.SoldOutState()
你可能喜欢
问答题
阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。
说明:某大型商场内安装了多个简易的纸巾售卖机,自动售出2元钱一包的纸巾,且每次仅售出一包纸巾。纸巾售卖机的状态如图10.35所示。采用状态(State)模式来实现该纸巾售卖机,得到如图10.36所示的类图。其中类State为抽象类,定义了投币、退币、出纸巾等方法接口。类SoldState、SoldOutState、NoQuarterState和HasQuarterState分别对应图10.35中纸巾售卖机的4种状态:售出纸巾、纸巾售完、没有投币、有2元钱。
C++代码如下:
问答题
阅读下列说明和图,回答问题1至问题3,将解答填入答题纸的对应栏内。
说明:Pay&Drive系统(开多少付多少)能够根据驾驶里程自动计算应付的费用。系统中存储了特定区域道路交通网的信息。道路交通网由若干个路段(RoadSegment)构成,每个路段由两个地理位置坐标点(Node)标定,其里程数(Distance)是已知的。在某些地理坐标点上安装了访问控制(AccessControl)设备,可以自动扫描行驶卡(Card)。行程(Trajectory)由一组连续的路段构成。行程的起点(Entry)和终点(Exit)都装有访问控制设备。系统提供了3种行驶卡。常规卡(RegularCard)有效期(ValidPeriod)为一年,可以在整个道路交通网内使用。季卡(SeasonCard)有效期为三个月,可以在整个道路交通网内使用。单次卡(MinitripCard)在指定的行程内使用,且只能使用一次。其中,季卡和单次卡都是预付卡(PrepaidCard),需要客户(Customer)预存一定的费用。系统的主要功能有:客户注册、申请行驶卡、使用行驶卡行驶等。使用常规卡行驶,在进入行程起点时,系统记录行程起点、进入时间(DateofEntry)等信息。在到达行程终点时,系统根据行驶的里程数和所持卡的里程单价(UnitPrice)计算应付费用,并打印费用单(Invoice)。季卡的使用流程与常规卡类似,但是不需要打印费用单,系统自动从卡中扣除应付费用。单次卡的使用流程与季卡类似,但还需要在行程的起点和终点上检查行驶路线是否符合该卡所规定的行驶路线。现采用面向对象方法开发该系统,使用UML进行建模。
构建出的用例图和类图分别如图10.33和图10.34所示。
单项选择题
A.Subject
B.ConcreteSubject
C.Observer
D.ConcreteObserver
单项选择题
A.命令(CommanD.
B.责任链(ChainofResponsibility)
C.观察者(Observer)
D.迭代器(Iterator)
单项选择题
A.实现数据隐藏,以免意外更改
B.操作符重载
C.实现属性值不可更改
D.实现属性值对类的所有对象共享