天天看點

模闆方法模式

模闆方法模式(TemplateMethod),定義一個操作中的算法骨架,而将一些步驟延遲到子類中。模闆方法使得子類可以不改變一個算法得結構即可重定義該算法得某些特定步驟。

模闆方法模式
 示意圖代碼如下:
模闆方法模式
模闆方法模式

1 public abstract class AbstractClass {
2     public abstract void primitiveOperation1();
3     public abstract void primitiveOperation2();
4     
5     public void templateMethod(){
6         primitiveOperation1();
7         primitiveOperation2();
8     }
9 }      

AbstractClass

模闆方法模式
模闆方法模式
1 public class ConcreteClassA extends AbstractClass {
 2 
 3     @Override
 4     public void primitiveOperation1() {
 5         System.out.println("A實作1.。。。");
 6 
 7     }
 8 
 9     @Override
10     public void primitiveOperation2() {
11         System.out.println("A實作2.。。。");
12 
13     }
14 
15 }      

ConcreteClassA

模闆方法模式
模闆方法模式
1 public class ConcreteClassB extends AbstractClass {
 2 
 3     @Override
 4     public void primitiveOperation1() {
 5         System.out.println("B實作1.。。。");
 6         
 7     }
 8 
 9     @Override
10     public void primitiveOperation2() {
11         System.out.println("B實作2.。。。");
12         
13     }
14 
15 }      

ConcreteClassB

模闆方法模式
模闆方法模式
public class TestTemplate {
    public static void main(String[] args) {
        AbstractClass cl = new ConcreteClassA();
        cl.templateMethod();
        cl = new ConcreteClassB();
        cl.templateMethod();
    }
}

結果:
A實作1.。。。
A實作2.。。。
B實作1.。。。
B實作2.。。。      

test

模闆方法模式是通過把不變行為搬到超類,去除子類中的重複代碼,來展現它的優勢。

上一篇: 裝飾模式
下一篇: 政策模式