【設計模式】--模板方法
模板方法
在一個方法中定義一個演算法的骨架,而將具體的實現延遲到子類。模板方法使得子類在不改變演算法結構的情況下,重新定義演算法中的某些步驟。下圖中AbstractClass就是我們定義的抽象的演算法骨架,ConcreteClass就是對演算法具體的實現。
AbstractClass
/**
* @ClassName:AbstractClass
* @Description:TODO
* @author wm
* @date 2016年1月16日下午8:08:50
*/
public abstract class AbstractClass {
public static final String METHOD_1="m1";
public static final String METHOD_2="m2";
public void templateMethod( String methodName){
if(METHOD_1.equals(methodName)){
doOperation1(methodName);
}
if(METHOD_2.equals(methodName)){
doOperation2(methodName);
}
}
protected abstract void doOperation1(String methodName);
protected abstract void doOperation2(String methodName);
}
ConcreteClass
/**
* @ClassName:ConcreteClass
* @Description:TODO
* @author wm
* @date 2016年1月18日下午3:03:11
*/
public class ConcreteClass extends AbstractClass {
@Override
protected void doOperation1(String methodName) {
System.out.println("ConcreteClass-->>doOperation1()" + methodName);
}
@Override
protected void doOperation2(String methodName) {
System.out.println("ConcreteClass-->>doOperation2()" + methodName);
}
}
測試類
/**
* @ClassName:Test
* @Description:TODO
* @author wm
* @date 2016年1月18日下午3:04:40
*/
public class Test {
public static void main(String[] args){
AbstractClass a=new ConcreteClass();
//a.templateMethod(AbstractClass.METHOD_1);
a.templateMethod(AbstractClass.METHOD_2);
}
}
templateMethod傳入引數METHOD_1就呼叫doOperation1方法,2類似。類比Servlet,AbstractClass類似於Servlet中的doGet,doPost方法,具體的實現由子類完成。
-------------------------------------------wm 點點滴滴的積累----------------------------------------------------
相關文章
- 設計模式-模板方法模式設計模式
- 設計模式 ——— 模板方法模式設計模式
- 模板方法設計模式設計模式
- Java設計模式-模板方法模式Java設計模式
- 設計模式之【模板方法模式】設計模式
- js設計模式--模板方法模式JS設計模式
- 設計模式之模板方法模式設計模式
- 設計模式-模板方法模式.md設計模式
- 設計模式(五)——模板方法模式設計模式
- 設計模式之模板方法設計模式
- PHP設計模式之模板方法模式PHP設計模式
- 簡說設計模式——模板方法模式設計模式
- python設計模式-模板方法模式Python設計模式
- 設計模式實戰-模板方法模式設計模式
- 極簡設計模式-模板方法模式設計模式
- 【大話設計模式】—— 模板方法模式設計模式
- 23種設計模式(四)- 模板方法設計模式設計模式
- JAVA設計模式之模板方法Java設計模式
- 詳解模板方法設計模式設計模式
- Java描述設計模式(19):模板方法模式Java設計模式
- C#設計模式(14)——模板方法模式C#設計模式
- 《Head First 設計模式》:模板方法模式設計模式
- Java設計模式之(十三)——模板方法模式Java設計模式
- javascript設計模式 之 8 模板方法模式JavaScript設計模式
- 我的Java設計模式-模板方法模式Java設計模式
- 23種設計模式之--模板方法模式設計模式
- 23種設計模式之模板方法設計模式
- 設計模式漫談之模板方法設計模式
- 折騰Java設計模式之模板方法模式Java設計模式
- 原始碼中的設計模式--模板方法模式原始碼設計模式
- 設計模式 | 模板方法模式及典型應用設計模式
- C#設計模式-模板方法模式(Template Method)C#設計模式
- Rust語言之GoF設計模式: 模板方法模式RustGo設計模式
- 設計模式-模板模式設計模式
- 設計模式——模板模式設計模式
- Java設計模式之模板方法模式和建造者模式Java設計模式
- Java設計模式——模板設計模式Java設計模式
- 原始碼中的設計模式--模板方法模式(鉤子方法)原始碼設計模式