1 前言模板方法模式是面向對象軟體設計中一種非常簡單的設計模式。其基本思想是在抽象類的一個方法定義“標準”演算法。在這個方法中調用的基本操作由子類重載予以實現。這個方法成為“模板”。因為方法定義的演算法缺少一些特有的操作。2 詳述2.1 簡述定義一個操作中演算法的骨架,而將一些步驟延遲到子類中。模板方法使...
1 前言
模板方法模式是面向對象軟體設計中一種非常簡單的設計模式。其基本思想是在抽象類的一個方法定義“標準”演算法。在這個方法中調用的基本操作由子類重載予以實現。這個方法成為“模板”。因為方法定義的演算法缺少一些特有的操作。
2 詳述
2.1 簡述
定義一個操作中演算法的骨架,而將一些步驟延遲到子類中。模板方法使子類可以重定義演算法的某些特定步驟而不改變該演算法的結構。思維導圖如下:
2.2 何時使用
(1)需要一次性實現演算法的不變部分,並將可變得行為留給子類來實現。
(2)子類的共同行為應該被提取出來放到公共類中,以避免代碼重覆。現有代碼的差別應該被分離為新的操作。然後用一個調用這些新操作的模板方法來替換這些不同的代碼。
(3)需要控制子類的擴展。可以定義一個在特定點調用“鉤子”(hook)操作的模板方法。子類可以通過鉤子操作的實現在這些點擴展功能。
2.3 模板方法調用5種類型的操作
(1)對具體類或客戶端類的具體操作;
(2)對抽象類的具體操作;
(3)抽象操作;
(4)工廠方法;
(5)鉤子操作。