读书人

Template Method形式和Strategy模式有

发布时间: 2012-09-02 21:00:34 作者: rapoo

Template Method模式和Strategy模式有何异同
Template Method模式很容易理解,就是由基类提供一个模板,将各子类中不变的行为提取到基类中实现,而各子类中可变的行为则由各子类自己重写基类方法实现.
Strategy则是在使用策略模式的应用实例内部维护一个策略实例,针对不同的子类用不同的策略实现.

来看看两者的代码实现:

Template Method模式 -- 基类

package com.dzeay.pattern.strategy;/** * <pre> * Strategy(策略模式)详解: * 在使用策略模式的应用实例内部维护一个strategy实例,针对不同的子类用不同的策略实现 * </pre> *  * @author <a href="mailto:dzeay.com@gmail.com">dzeay.com</a> * @since 2010-11-15 * @version 1.0 */public class TestClass {    /**     * @param args     */    public static void main(String[] args) {        Context context = new Context();        context.setStrategy(new AStrategy());        context.doOtherThing();        context.setStrategy(new BStrategy());        context.doOtherThing();                context.setStrategy(new IStrategy() {                        @Override            public void doOtherThing() {                System.out.println("doOtherThing");            }        });        context.doOtherThing();    }}


未完待续 ........

读书人网 >软件架构设计

热点推荐