单项选择题
关于模式适用性,以下()不适合使用模板方法(Template Method)模式。
A.一次性实现一个算法的不变的部分,并将可变的行为留给子类来实现
B.当对一个对象的改变需要同时改变其他对象,而不知道具体有多少对象有待改变
C.各子类中公共的行为应被提取出来并集中到一个公共父类中以避免代码重复。首先识别现有代码中的不同之处,并且将不同之处分离为新的操作。最后,用一个调用这些新的操作的模板方法来替换这些不同的代码
D.控制子类扩展。模板方法只在特定点调用“hook”操作,这样就只允许在这些点进行扩展
点击查看答案&解析
相关考题
-
单项选择题
以下意图()可用来描述命令(Command)模式。
A.将一个请求封装为一个对象,从而使用户可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作
B.定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换,本模式使得算法可独立于使用它的客户而变化
C.为其他对象提供一种代理以控制对这个对象的访问
D.保证一个类仅有一个实例,并提供一个访问它的全局访问点 -
单项选择题
关于模式适用性,以下()适合使用组合(Composite)模式。
A.用户想使用一个已经存在的类,而它的接口不符合用户的需求
B.当一个类的实例只能有几个不同状态组合中的一种时
C.用户想表示对象的部分-整体层次结构
D.一个对象的行为取决于它的状态,并且它必须在运行时根据状态改变它的行为 -
单项选择题
如果有一个2MB 的文本(英文字母),为了对其中的字母进行分类和计数,若为文本中的每个字母都定义一个对象显然不合实际,对与该问题最好可使用的模式是()。
A.装饰(Decorator)模式
B.享元(Flyweight )模式
C.合成(Composite)模式
D.命令(Command)模式
