無廢話設計模式(12)行為型模式--模板方法模式
阿新 • • 發佈:2020-08-03
0-前言
模板方法模式定義:定義一個操作中的演算法骨架,而將一些步驟延遲到子類中;
模板方法模式使得子類可以不改變一個演算法的結構即可重新定義該演算法的某些步驟;
1-實現
1-1、簡單UML圖:
1-2、程式碼實現
//1、抽象父類 abstract class TestPhone { public void PowerOn() { System.out.println("測試開機是否正常"); } public void PowerOff() { System.out.println("測試關機是否正常"); }public void Test() { System.out.println("開始測試手機----------"); PowerOn(); PowerOff(); } } //2-1、具體類A class TestPhoneA extends TestPhone { @Override public void PowerOn() { System.out.println("空電池下測試插電線開機"); super.PowerOn(); } } //2-2、具體類B classTestPhoneB extends TestPhone { @Override public void PowerOff() { System.out.println("測試直接拔電池關機"); super.PowerOff(); } }
客戶端:
TestPhone testPhone; testPhone = new TestPhoneA(); testPhone.Test(); testPhone = new TestPhoneB(); testPhone.Test();
執行結果:
2-應用場景簡單總結
1、一次性地實現一個演算法不變的部分,而將可變的行為留個子類來實現;
2、當子類有公共行為可提取到父類中去,而子類有自己的個性化需求時;