以下意图( )可用来描述策略( Strate gy
A. 将抽象部分与它的实现部分分离,使它们都可以独立变化
B. 将一个复杂对象的 建与它的表示 使得同样的 建过程可以创建不同的表示
C. 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中
D. 定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换
查看答案
关于模式适用性 以下( )不适合使用策略( Strategy )模式
A. 当一个对象必须通知其他对象 而它又不能假定其 对象是谁。换言之,用户不希望这 些对象是紧密搞合的
B. 许多相关的类仅仅是行为有异。“策略”提供了一种用多个行为中的一个行为来配置一个 类的方法
C. 需要使用一个算法的不同变体。例如 用户可能会定义一些反映不同的空间/时间权衡的 算法。当这些变体实现为一个算法的类层次时,可以使用策略模式
D. 算法使用客户不应该知道的数据 可使用策略模式以避免暴露复杂的、与算法相关的数 据结构
关于模式适用性 以下( )不适合使用模板方法( Template Method 模式。
A. 一次性实现-个算法的不变的部分,并将可变的行为留给子类来实现
B. 当对一个对象的改变需要同时改变其他对象,而不知道具体有多少对象有待改变
C. 各子类中公共的行为应被提取出来并集中到一个公共父类中以避免代码重复。首先识别 现有代码中的不同之处,并且将不同之处分离为新的操作。最后 ,用一个调用这些新的 作的模板方法来替换这些不同的代码
D. 控制子类扩展。模板方法只在特定点调用“hook”操作,这样就只允许在这些点进行扩展
关于模式 性, 以下( )适合使用组合( Composite 模式。
A. 用户 使用 已经存在 而它 口不符合用户的需求
B. 当一个类的实例只能有几个不同状态组合中的一种时
C. 用户想表示对象的部分 整体层次结构
D. 一个对象 行为取决于它的状态 并且它必须在运行 根据状态改变它的行为
以下意图 可用来描述享元( Flyweight )。
A. 将抽象部分与它的实现部分分离 使它 都可以独立变 化
B. 运用共享技术有效 支持大 细粒度的对象
C. 动态 给一 对象添加一些额外的职责
D. 用原型实例指定创建对象的种类 并且通过复制这些原型创建新的对象