以下意图( )可用来描述命令( Command)
A. 将一个请求封装为一个对象,从而使用户可用不同的请求对客户进行参数化 对请求排 队或记录请求日志,以及支持可撤销的操作
B. 定义一系 的算法,把它 一个个封装起来 并且使它们可相互替换 本模式使得算法 可独立于使用它的客户而变化
C. 为其 对象提供一种代理以控制对这个对象的访问
D. 保证一个类仅有一个实例,并提供一 它的全局访问点
以下意图( )可用来描述模板方法( Template Method )。
A. 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中
B. 为其 对象提供一种代理以控制 这个对象的访问
C. 将抽象部分与它的实现部分分离,使它 都可以独立变化
D. 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的稠合关系
以下意图( )可用来描述策略( Strate gy
A. 将抽象部分与它的实现部分分离,使它们都可以独立变化
B. 将一个复杂对象的 建与它的表示 使得同样的 建过程可以创建不同的表示
C. 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中
D. 定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换
关于模式适用性 以下( )不适合使用策略( Strategy )模式
A. 当一个对象必须通知其他对象 而它又不能假定其 对象是谁。换言之,用户不希望这 些对象是紧密搞合的
B. 许多相关的类仅仅是行为有异。“策略”提供了一种用多个行为中的一个行为来配置一个 类的方法
C. 需要使用一个算法的不同变体。例如 用户可能会定义一些反映不同的空间/时间权衡的 算法。当这些变体实现为一个算法的类层次时,可以使用策略模式
D. 算法使用客户不应该知道的数据 可使用策略模式以避免暴露复杂的、与算法相关的数 据结构