回调(Call back )函数是面向过程的程序设计语言中常用的一-种机制,而设计模式中的( )
模式就是回调机制的一个面向对象的替代品。该模式的意图是()。
问题1
- A Strategy (策略)
- B Adapter (适配器)
- C Command (命令)
- D Observer (观察者)
问题2 - A 使原本由于接口不兼容而不能一起工作的那些类可以一起工作
- B 将一个请求封装为一个对象,从而可用不同的请求对客户进行参数化,将请求排队或记录请求日志,支持可撤销的操作
- C 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新
- D 使算法可独立于使用它的客户而变化
问题1:
参考答案:C
问题2:
参考答案: B
解析:
面向过程语言中的回调( callback)函数是指函数先在某处注册,而它将在稍后某个需要的
时候被调用。它实际上是一种参数化机制。
Command模式是一种对象行为型模式。Command模式的其中一种应用场合就是抽象出待执行的动作以参数化某种对象,该模式实际上是回调机制的一个面向对象的替代品。这个模式的设计意图是:将一个请求封装为一个对象,从而使用户可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。
Strategy模式也是一种对象行为型模式, 其设计意图是定义一系列的算法,把它们一个一个地封装起来,并且使它们可相互替换。这个模式使得算法可独立于使用它的客户而变化。通常当存在以下情况时使用Strategy模式:
(1)许多相关的类仅仅是行为有异;
(2)需要使用一个算法的不同变体;
(3)算法使用客户不应该知道的数据,可使用Strategy模式避免暴露复杂的、与算法相关
的数据结构;
(4)一个类定义了多种行为,并且这些行为在这个类的操作中以多个条件语句的形式出
现。
Adapter模式是一种类对象结构型模式。通过将一个的类的接口转换成客户希望的另外一-个接口,Adapter模式使原本由于接口不兼容而不能在一起工作的那些类可以一起工作。
Observer模式是另外一种对象行为型模式,其设计意图是定义对象间的一种一-对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。当存在以下情况时可以使用Observer模式:
(1)一个抽象模型有两个方面,其中一个方面依赖于另一个方面,将两者封装在独立的对
象中使它们可以各自独立地改变和复用;
(2)对一-个对象的改变需要同时改变其他对象,而不知道具体有多少对象有待改变;
(3)一个对象必须通知其他对象,而它又不能假定其他对象是谁。