1. 程式人生 > >淺談java 23種設計模式之模板方法模式(Template )

淺談java 23種設計模式之模板方法模式(Template )

模板方法模式:

模板方法模式是類的行為模式的一種,符合開閉原則(對擴充套件開放,對修改關閉)。父類提取子類公共方法,並提供若干抽象方法供子類實現,以減少子類中的重複程式碼,並提高可複用性。

示例:

1.建立一個父類bird,每天只有吃和睡才能生活,但是必須要先進行吃,然後再進行睡:

public abstract class Bird{
    public abstract void eat();
    public abstract void sleep();
    public final void life(){
        eat();
        sleep();
    }
}
    2.但是麻雀A和啄木鳥B吃東西睡覺習慣不同,所以就需要進行行為擴充套件,但是都要進行吃和睡,所以建立不同的類,繼承它們的父類bird:
public class ABird extends Bird{
    public void eat(){
        System.out.println("吃樹葉.");
    }
    public void sleep(){        
     System.out.println("睡草垛.");
  }
}
public class BBird extends Bird{
    public void eat(){
        System.out.println("吃蟲子.");
    }
    public void sleep(){        
     System.out.println("睡樹枝.");
    }
}
    3.當需要進行麻雀行為或者啄木鳥的時候就可以直接進行選擇:
public static void main(String[] args) {
	Bird bird = new Abird();
        bird.life();
}

優缺點:

模板模式可提出子類中的重複程式碼,增加程式碼的可複用性和擴充套件性。
    但是必須知道全部的子類,而且如果子類過多維護起來也不是很方便。