模板方法模式:
將子類中重複出現的相同邏輯**提取出來作為公共部分(一般將其提取放在乙個具體的方法中),然後將其中的邏輯組成步驟,推遲至子類中實現(通常將邏輯組成步驟定義為抽象方法)。
模式中的角色:
1)抽象類(abstractclass):定義了模板方法,此方法中包含了關於功能實現的主要邏輯框架(但邏輯仍不完整,缺少關鍵的步驟)。
2)實現類(concreteclass):實現了抽象類中的抽象方法,填補邏輯框架中的關鍵步驟。
**大致介紹
1)abstracttemplatemethod.class 定義抽象類,包含公共模板方法;
2)impltemplatemethod_01.class 定義實現類之一
3)impltemplatemethod_02.class 定義實現類之二
4)templatemethodtest 測試類
下面上**:
package designpattern.templatemethod;
/** *@function 抽象模板方法類,通常是將子類中重複出現邏輯**提取出來
* 作為公共部分(一般將其放在乙個具體的方法中),然後其中的邏輯組成步驟,
* 推遲至子類中實現(通常將邏輯組成步驟定義為抽象方法)。
*@author mr.leaf
*@time 2017-3-1 17:40:54
* */
public
abstract
class
abstracttemplatemethod else
}/**
*@function 抽象方法一,推遲至子類實現,返回乙個數字
* */
public
abstract
intabstmethod1();
/***@function 抽象方法二,推遲至子類實現,返回乙個字串
* */
public
abstract string abstmethod2();
/***@function 抽象方法三,推遲至子類實現,返回乙個字串
* */
public
abstract string abstmethod3();
}
package designpattern.templatemethod;
public
class
impltemplatemethod_01
extends
abstracttemplatemethod
public
impltemplatemethod_01(int num, string s1, string s2)
@override
public
intabstmethod1()
@override
public string abstmethod2()
@override
public string abstmethod3()
}
package designpattern.templatemethod;
public
class
impltemplatemethod_02
extends
abstracttemplatemethod
public
impltemplatemethod_02(int num, string s1, string s2)
@override
public
intabstmethod1()
@override
public string abstmethod2()
@override
public string abstmethod3()
}
package designpattern.templatemethod;
import org.junit.test;
public
class
templatemethodtest
}
**大致就是這樣,很簡單,但設計模式的學習絕不僅僅是在**,而是對設計模式的思考和理解。生活中也有用到這種設計模式的栗子,例如學校即將開學,學校會給各種教職人員安排不同的準備工作來迎接開學,這個時候想象一下,如果單獨安排肯定會造成很多重複,所以我們可以先將公共的模板提煉出來,讓不同的人員根據需要去使用。(好像學校開請假條也是這種設計模式,有請假條的模板,不同的學生根據不同需要去填寫,哈哈^_^) 模板設計模式 PHP設計模式之模板方法模式
模板方法模式,也是我們經常會在不經意間有會用到的模式之一。這個模式是對繼承的最好詮釋。當子類中有重複的動作時,將他們提取出來,放在父類中進行統一的處理,這就是模板方法模式的最簡單通俗的解釋。就像我們平時做專案,每次的專案流程實都差不多,都有調研 開發 測試 部署上線等流程。而具體到每個專案中,這些流...
設計模式之模板方法設計模式
父類抽象出子類共有的方法,子類實現各自不同的業務。總之就是一種行為有他們共同的方法,只是他們具體的實現不一樣。比如開車這種行為模式,啟動 換擋 踩油門。每種型號品牌的車都有共同的行為,但是不同型號品牌的車的實現方式可能不同,需要每個品牌型號的車自己實現這些功能。這樣的定義上面行為的模式,稱之為模板方...
設計模式之模板方法模式
定義 定義乙個操作中演算法的框架,而將一些步驟延遲到子類中,使得子類可以不改變演算法的結構即可重定義該演算法中的某些特定步驟 型別 行為類模式 事實上,模板方法是程式設計中乙個經常用到的模式。比如,給定乙個整數陣列,把陣列中的數由大到小順序,然後把排序之後的結果列印出來。這個需求大體可以分為兩部分,...