自动售货机根据库存、存放货币量、找零能力、所选项目等不同,在货币存入并进行选择时具有如下行为:交付产品不找零:交付产品找零:存入货币不足而不提供任何产品;库存不足而不提供任何产品。这一业务需求适合采用( )模式设计实现,其类图如下图所示,其中(请作答此空)是客户程序使用主要接口,可用状态来对其进行配置。此模式为( ),体现最主要意图是( )。
- A.VendingMachineState
- B.Buy
- C.VendingDepositState
- D.VendingStockState
正确答案及解析
正确答案
A
解析
状态型模式特点是对于对象内部状态,允许其在不同状态下,拥有不同行为,对状态单独封装成类。题干中根据投入货币情况,售货机分别有交付产品不找零和交付产品找零以及不提供货物等行为判断该模式是属于状态模式。VendingMachineState是客户程序使用主要接口。设计模式类型如下所示:
观察者模式(ObserverPattern):观察者模式定义了对象间一种一对多依赖关系,使得每当一个对象改变状态,则所有依赖于它对象都会得到通知并被自动更新。
访问者模式(VisitorPattern):表示一个作用于某对象结构中各元素操作。它使你可以在不改变各元素类前提下定义作用与这些元素新操作。即对于某个对象或者一组对象,不同访问者,产生结果不同,执行操作也不同。备忘录模式(MementoPattern):在不破坏封装性前提下,捕获一个对象内部状态,并在该对象之外保存这个状态。这样就可以将该对象恢复到原先保存状态。策略模式(StrategyPattern):策略模式定义了一系列算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它客户而独立变化。命令模式(CommandPattern):将一个请求封装成一个对象,从而使得用不同请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销操作。