设计模式之模板方法模式
设计模式之模板方法模式
什么是模板方法模式?
模板方法模式是类的行为模式。准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。这就是模板方法模式的用意。
UML
代码实现
AbstractClass类
1 package template; 2 3 public abstract class AbstractClass { 4 public abstract void primitiveOperation1(); 5 public abstract void primitiveOperation2(); 6 7 public void templateMethod() { 8 primitiveOperation1(); 9 primitiveOperation2(); 10 } 11 }
ConcreteClassA类
package template; public class ConcreteClassA extends AbstractClass { @Override public void primitiveOperation1() { // TODO Auto-generated method stub System.out.println("方法A的一方法"); } @Override public void primitiveOperation2() { // TODO Auto-generated method stub System.out.println("方法A的二方法"); } }
ConcreteClassB类
package template;
public class ConcreteClassB extends AbstractClass {
@Override
public void primitiveOperation1() {
// TODO Auto-generated method stub
System.out.println("方法B的一方法");
}
@Override
public void primitiveOperation2() {
// TODO Auto-generated method stub
System.out.println("方法B的二方法");
}
}
测试类
1 package template; 2 3 public class Test { 4 5 public static void main(String[] args) { 6 // TODO Auto-generated method stub 7 AbstractClass c; 8 c=new ConcreteClassA(); 9 c.templateMethod(); 10 c =new ConcreteClassB(); 11 c.templateMethod(); 12 } 13 14 }
模板方法即是通过把不变的行为搬移到超类,去除子类中的重复代码来体现它的优势
本文写得太过匆忙,一方面有作业急着要做,另一方面因自己看到了一篇总结得很全面的博客,深愧于自身能力不足。
链接为http://www.cnblogs.com/java-my-life/archive/2012/05/14/2495235.html
初学《大话设计模式》