設計模式之模板方法模式(簡單瞭解)
阿新 • • 發佈:2021-01-19
設計模式之模板方法模式
模式定義:模板方法(Template Method)用來定義演算法的框架,將演算法中可變的步驟定義為抽象方法,交給子類來實現或重寫。
使用模板方法的好處
1.避免程式碼冗餘。演算法不可變的部分由模板方法定義,所有子類均可複用,可以避免子類重複定義相同的程式碼
2.提高程式碼穩定性。演算法的可變部分是不穩定的。將不穩定的步驟定義為抽象方法,交給子類去實現。模板方法依賴於抽象方法,能保證演算法框架的穩定性
使用場景
1.當演算法中含有可變步驟和不可變步驟時,讓子類決定可變步驟的實現方式
2.當多個類中含有公共的業務行為,開發人員想要避免重複定義相同的程式碼
3.想么控制子類的擴充套件行為,只允許子類實現特性的擴充套件點
java程式碼:
public class TemplateMethod {
public static void main(String[] args) {
Temp temp =new TempImpl();
//呼叫模板方法
temp.check();
}
}
//模板類
abstract class Temp{
//模板方法
public final void check(){
steps1();
steps2();
steps3 ();
steps4();
}
//步驟一
private void steps1(){
System.out.println("模板方法步驟一");
}
//步驟二
private void steps2(){
System.out.println("模板方法步驟二");
}
//步驟三(定義為抽象方法,交給子類實現或重寫)
protected abstract void steps3();
//步驟四
private void steps4 (){
System.out.println("模板方法步驟四");
}
}
//子類實現
class TempImpl extends Temp{
@Override
protected void steps3() {
System.out.println("子類實現的步驟");
}
}
執行結果: