淺談java 23種設計模式之模板方法模式(Template )
阿新 • • 發佈:2019-02-02
模板方法模式:
模板方法模式是類的行為模式的一種,符合開閉原則(對擴充套件開放,對修改關閉)。父類提取子類公共方法,並提供若干抽象方法供子類實現,以減少子類中的重複程式碼,並提高可複用性。
示例:
1.建立一個父類bird,每天只有吃和睡才能生活,但是必須要先進行吃,然後再進行睡:
public abstract class Bird{ public abstract void eat(); public abstract void sleep(); public final void life(){ eat(); sleep(); } }
public class ABird extends Bird{ public void eat(){ System.out.println("吃樹葉."); } public void sleep(){
System.out.println("睡草垛.");
}
}
3.當需要進行麻雀行為或者啄木鳥的時候就可以直接進行選擇:public class BBird extends Bird{ public void eat(){ System.out.println("吃蟲子."); } public void sleep(){ System.out.println("睡樹枝."); } }
public static void main(String[] args) {
Bird bird = new Abird();
bird.life();
}
優缺點:
模板模式可提出子類中的重複程式碼,增加程式碼的可複用性和擴充套件性。
但是必須知道全部的子類,而且如果子類過多維護起來也不是很方便。