以下关于策略模式的叙述错误的是( )。
A.策略模式是对算法的包装,是把算法的责任和算法本身分隔开,委派给不同的 对象管理
B.在Context类中,维护了对各个ConcreteStrategy的引用实例,提供了一个接口 供 ConcreteStrategy 存储数据
C.策略模式让算法独立于使用它的客户而变化
D.策略模式中,定义一系列算法,并将每一个算法封装起来,并让它们可以相互替换
试卷相关题目
- 1以下关于状态模式的叙述错误的是( )。
A.状态模式允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修 改了它的类
B.状态模式中引人了一个抽象类来专门表示对象的状态,而具体的状态都继承了 该类,并实现了不同状态的行为,包括各种状态之间的转换
C.状态模式使状态的变化更加清晰明了,也很容易创建对象的新状态
D.状态模式完全符合开闭原则,增加新的状态类无须对原有类库进行任何修改
开始考试点击查看答案 - 2场景( )不是状态模式的实例。
A.银行账户根据余额不同拥有不同的存取款操作
B.游戏软件中根据虚拟角色级别的不同拥有不同的权限
C.某软件在不同的操作系统中呈现不同的外观
D.会员系统中不同的会员等级可以实现不同的行为
开始考试点击查看答案 - 3下面这句话隐含着( )设计模式。我和妹妹跟妈妈说:“妈妈,我和妹妹在院子里玩。饭做好了叫我们一声。
A.外观(Facade)
B.职责链(Chain of Responsibility)
C.观察者(Observer)
D.迭代器(Iterator)
开始考试点击查看答案 - 4( )设计模式定义了对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动刷新。
A.适配器(Adapter)
B.迭代器(Iterator)
C.原型(Prototype)
D.观察者(Observer)
开始考试点击查看答案 - 5分析如下代码:public class TestXYZ { int behaviour;//Getter and Setterpublic void handleAll() {if (behaviour == 0) { //do something } else if (behaviour == 1) { //do something } else if (behaviour == 2) { //do something } else if (behaviour == 3) { //do something } ... some more else if ...为了提髙代码的扩展性和健壮性,可以使用( )设计模式来进行重构。
A.访问者(Visitor)
B.外观(Facade)
C.备忘录(Memento)
D.状态(State)
开始考试点击查看答案 - 6以下关于策略模式的优缺点描述错误的是( )。
A.策略模式中,客户端无须知道所有的策略类,系统必须自行提供一个策略类
B.策略模式可以避免使用多重条件转移语句
C.策略模式会导致产生大量的策略类
D.策略模式提供了管理相关算法族的办法
开始考试点击查看答案 - 7某系统中的用户可自行动态选择某种排序算法之一(如选择排序、冒泡排序、插入排序)来实现某功能,该系统的设计可以使用( )设计模式。
A.状态
B.策略
C.模板方法
D.工厂方法
开始考试点击查看答案 - 8某系统中的某子模块需要为其他模块提供访问不同数据库系统(Oracle、SQL Server,DB2 UDB等)的功能,这些数据库系统提供的访问接口有一定的差异,但访问过程 却都是相同的,例如,先连接数据库,再打开数据库,最后对数据进行査询。可使用( )设 计模式抽象出相同的数据库访问过程。
A.观察者
B.访问者
C.模板方法
D.策略
开始考试点击查看答案 - 9以下关于模板方法模式的叙述错误的是( )。
A.模板方法模式定义了一个操作中算法的骨架,而将一些步骤延迟到子类中
B.模板方法模式是一种对象行为型模式
C.模板方法使子类可以不改变一个算法的结构即可重定义该算法的某些特定 步骤
D.模板方法不仅可以调用原始的操作,还可以调用定义于AbstractClass中的方 法或其他对象中的方法
开始考试点击查看答案 - 10以下关于访问者模式的叙述错误的是( )。
A.访问者模式表示一个作用于某对象结构中的各元素的操作
B.访问者模式使我们可以在不改变各元素的类的前提下定义作用于这些元素的 新操作
C.在访问者模式中,ObjectStructure提供一个高层接口以允许访问者访问它的 元素
D.访问者模式使增加新的元素变得很简单
开始考试点击查看答案