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