模板模式的特點:
1:父類抽象類:類中含有具體不變的方法和可變的抽象方法
2:鉤子方法:鉤子方法在父類中,有父類聲明的子類實例化對象可以通過鉤子方法訪問子類實現的抽象方法
3:子類:繼承父類、實現抽象方法
優點:
1:子類實現父類的方法,增加了程序的可擴展性
2:父類封裝了公用代碼,實現代碼的重複利用
3:部分代碼由子類擴展,符合開閉原則
缺點:
1:每一個實現都要有一個具體類,導致子類的不斷增加,系統變得龐大
2:子類實現父類方法,導致子類的執行結果影響父類的執行結果,導致一種反向的控制結構,它提高了代碼閱讀的難度
直接上代碼
首先創建父類抽象類
public abstract class TemplateTest {
public void getMessage(String msg){
System.out.println(msg);
getAdd(msg);
getAddOne(msg);
}
public abstract void getAdd(String msg);
public abstract void getAddOne(String msg);
}
創建子類實現抽象方法
@Component("templateTest")
public class TemplateTestImpl extends TemplateTest{
@Override
public void getAdd(String msg) {
System.out.println(msg+1);
}
@Override
public void getAddOne(String msg) {
System.out.println(msg+2);
}
}
測試類試一下