以下意图( )可用来描述模板方法( Template Method )。
A. 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中
B. 为其 对象提供一种代理以控制 这个对象的访问
C. 将抽象部分与它的实现部分分离,使它 都可以独立变化
D. 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的稠合关系
以下意图( )可用来描述策略( Strate gy
A. 将抽象部分与它的实现部分分离,使它们都可以独立变化
B. 将一个复杂对象的 建与它的表示 使得同样的 建过程可以创建不同的表示
C. 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中
D. 定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换
关于模式适用性 以下( )不适合使用策略( Strategy )模式
A. 当一个对象必须通知其他对象 而它又不能假定其 对象是谁。换言之,用户不希望这 些对象是紧密搞合的
B. 许多相关的类仅仅是行为有异。“策略”提供了一种用多个行为中的一个行为来配置一个 类的方法
C. 需要使用一个算法的不同变体。例如 用户可能会定义一些反映不同的空间/时间权衡的 算法。当这些变体实现为一个算法的类层次时,可以使用策略模式
D. 算法使用客户不应该知道的数据 可使用策略模式以避免暴露复杂的、与算法相关的数 据结构
关于模式适用性 以下( )不适合使用模板方法( Template Method 模式。
A. 一次性实现-个算法的不变的部分,并将可变的行为留给子类来实现
B. 当对一个对象的改变需要同时改变其他对象,而不知道具体有多少对象有待改变
C. 各子类中公共的行为应被提取出来并集中到一个公共父类中以避免代码重复。首先识别 现有代码中的不同之处,并且将不同之处分离为新的操作。最后 ,用一个调用这些新的 作的模板方法来替换这些不同的代码
D. 控制子类扩展。模板方法只在特定点调用“hook”操作,这样就只允许在这些点进行扩展