设计模式之模板方法模式

设计模式之模板方法模式

什么是模板方法模式?

模板方法模式是类的行为模式。准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。这就是模板方法模式的用意。

 

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

 

初学《大话设计模式》

posted @ 2015-12-28 15:35  胖胖的半山兄  阅读(361)  评论(0编辑  收藏  举报