模版方法模式:定義乙個操作中的演算法的框架,而將一些步驟延遲到子類中。使得子類可以不改變乙個演算法的結構即可重定義該演算法的某些步驟。
抽象模版的方法分為兩類:
1. 基本方法也叫基本操作,是由子類實現的方法,並且在模版方法被呼叫。
2. 模版方法,可以有乙個或者幾個,一般是乙個具體方法,也就是乙個框架,實現對基本方法的排程,完成固定的邏輯。(為防止惡意的操作,一般模版方法加上final關鍵字,不允許被覆寫。)
具體模版:實現父類所定義的乙個或多個抽象方法。
抽象模版中的基本方法盡量設計成protected型別,不需要暴露的屬性或者方法盡量不要設計為protected。實現類若非必要,盡量不要擴大父類中的訪問許可權。
package com.juno.templatemethodpattern;
// 抽象模版類
public abstract class abstractclass
// 模版方法
public final void templatemethod()
}}
package com.juno.templatemethodpattern;
// 具體模版類
public class concreteclass1 extends abstractclass
@override
protected void doanything()
}
package com.juno.templatemethodpattern;
// 具體模版類
public class concreteclass2 extends abstractclass
@override
protected void doanything()
@override
protected boolean needdosomething()
}
package com.juno.templatemethodpattern;
public class client
}
列印:
concreteclass1 -- doanything~~
concreteclass1 -- dosomething~~
---------------------
concreteclass2 -- doanything~~
Java設計模式09 模版方法模式
出處 定義 定義乙個操作中演算法的框架,而將一些步驟延遲到子類中,使得子類可以不改變演算法的結構即可重定義該演算法中的某些特定步驟。型別 行為類模式 類圖 事實上,模版方法是程式設計中乙個經常用到的模式。先來看乙個例子,某日,程式設計師a拿到乙個任務 給定乙個整數陣列,把陣列中的數由小到大排序,然後...
java設計模式之模版方法
我們往往遇見一些問題我們知道它的解決流程,或者說是大概的思路,但是我們不知道它的具體的實現.就像我們的tomcat針對發起的http請求,它知道請求的流程,但是不知道具體邏輯和返回資料,這樣我們繼承了它的httpservlet類,實現它們的doget方法和dopost方法.實現我們需要實現的具體細節...
大話設計模式讀書筆記4 模版方法模式
模板方法是一種常見的設計模式,它定義乙個操作中的演算法的骨架,而將一些步驟延遲到子類中。模板使得子類可以不改變乙個演算法的結構即可重定義該演算法的某些特定步驟。uml圖 具體實現 namespace templatemethod public abstract class abstractclass...