您的位置:首页 > 其它

设计模式—模板方法模式

2010-11-06 21:38 225 查看


AbstractClass.java

public abstract class AbstractClass {

public static final String METHOD_1 = "m1";

public static final String METHOD_2 = "m2";

public final void templatePattern(String methodName){

if(METHOD_1.equals(methodName)){

doOperation1(methodName);

}

if(METHOD_2.equals(methodName)){

doOperation2(methodName);

}

}

protected abstract void doOperation1(String methodName);

protected abstract void doOperation2(String methodName);

}

ConcreteClass.java

public class ConcreteClass extends AbstractClass {

// //覆盖父类方法

// public void templatePattern(String methodName){

// System.out.println("覆盖父类方法,改变父类定义的执行路径,所以为了防止被覆盖而改变执行的路径,父类应该定义为final!");

// }

@Override

protected void doOperation1(String methodName) {

System.out.println("doOperation1-->>"+methodName);

}

@Override

protected void doOperation2(String methodName) {

System.out.println("doOperation2-->>"+methodName);

}

}

Test.java

public class Test {

/**

* @param args

*/

public static void main(String[] args) {

AbstractClass a = new ConcreteClass();

a.templatePattern(AbstractClass.METHOD_2);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: