状态型模式的特点是对于对象内部的状态,允许其在不同的状态下,拥有不同的行为,对状态单独封装成类。题干中根据投入货币的情况,售货机分别有交付产品不找零和交付产品找零以及不提供货物等行为判断该模式是属于状态模式。Vending Machine State是客户程序使用的主要接口。
设计模式的类型如下所示:
观察者模式(Observer Pattern):观察者模式定义了对象间的一种一对多依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新。
访问者模式(Visitor Pattern):表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用与这些元素的新操作。即对于某个对象或者一组对象,不同的访问者,产生的结果不同,执行操作也不同。
备忘录模式(Memento Pattern):在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样就可以将该对象恢复到原先保存的状态。
策略模式(Strategy Pattern):策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。
命令模式(Command Pattern):将一个请求封装成一个对象,从而使得用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。