自动售货机根据库存、存放货币量、找零能力、所选项目等不同,在货币存入并进行选择时具有如下行为:交付产品不找零:交付产品找零:存入货币不足而不提供任何产品;库存不足而不提供任何产品。这一业务需求适合采用( )模式设计实现,其类图如下图所示,其中(请作答此空)是客户程序使用主要接口,可用状态来对其进行配置。此模式为( ),体现最主要意图是( )。
- A.VendingMachineState
- B.Buy
- C.VendingDepositState
- D.VendingStockState
正确答案及解析
正确答案
解析
状态型模式特点是对于对象内部状态,允许其在不同状态下,拥有不同行为,对状态单独封装成类。题干中根据投入货币情况,售货机分别有交付产品不找零和交付产品找零以及不提供货物等行为判断该模式是属于状态模式。VendingMachineState是客户程序使用主要接口。设计模式类型如下所示:
观察者模式(ObserverPattern):观察者模式定义了对象间一种一对多依赖关系,使得每当一个对象改变状态,则所有依赖于它对象都会得到通知并被自动更新。
访问者模式(VisitorPattern):表示一个作用于某对象结构中各元素操作。它使你可以在不改变各元素类前提下定义作用与这些元素新操作。即对于某个对象或者一组对象,不同访问者,产生结果不同,执行操作也不同。备忘录模式(MementoPattern):在不破坏封装性前提下,捕获一个对象内部状态,并在该对象之外保存这个状态。这样就可以将该对象恢复到原先保存状态。策略模式(StrategyPattern):策略模式定义了一系列算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它客户而独立变化。命令模式(CommandPattern):将一个请求封装成一个对象,从而使得用不同请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销操作。
你可能感兴趣的试题
E-mail地址由分隔符“()”分为前后两部分,分别指明用户名及邮件
-
- A.//
- B.\\
- C.@
- 查看答案
某 html 文档中有如下代码,则在浏览器中打开该文档时显示为( )。
<form>
Listl:
<input type="text" name="List1" />
<br / >
List2:
<input type="text" name="List 2 " />
< /form>
-
- A.见图A
- B.见图B
- C.见图C
- D.见图D
- 查看答案
设有商品关系P(商品名,条形码,供应商号,价格,数量), “条形码”唯一标识关系P中的每一个元组,商品名不能为空,供应商号是关系P的外键。另有供应商关系S(供应商号,供应商名,地址,电话)。关系 P 中的商品名是唯一的。建立商品关系 P 的 SQL语句如下所示:
CREATE TABLE P( 商品名CHAR(30)( ),
条形码CHAR(30) ( ) ,
供应商号 CHAR(5) ,
价格 CHAR(20) ,
数量CHAR(20)
( )(供应商号) REFERENCES S(供应商号));
查询供应商及价格小于等于 2500 元且大于等于 1280 元的“电冰箱”的数量的SQL语句为:
SELECT商品名,供应商名,价格,数量
FROM P
WHERE商品名= ’电冰箱’ AND ( ) ;
将供应商号“12021”所供应的商品价格上涨3%的SQL语句为:
UPDATE P
( )
WHERE 供应商号= ’12021’;
查询供应商地址包含“西安”的供应商名及电话的SQL语句为:
SELECT供应商名,电话
FROM S
WHERE ( );
-
- A.NULL
- B.UNIQUE
- C.NOT NULL
- D.NOT NULL UNIQUE
- 查看答案
函数f()、g()的定义如下所示。已知调用f时传递给其形参x的值是1,若以传值方式调用g,则函数f的返回值为( );若以传引用方式调用g,则函数f的返回值为( )。
-
- A.3
- B.4
- C.6
- D.7
- 查看答案
-
- A.见图A
- B.见图B
- C.见图C
- D.见图D
- 查看答案