設計模式學習 模板方法模式

2021-09-25 14:17:00 字數 1313 閱讀 5712

在我們的功能設計中,通常一些功能是由一系列步驟來完成的,這些步驟的次序基本一致,但是它們的實現可能完全不同。比如我們打算買一部手機,那麼流程基本為瀏覽、下單、支付、收貨四個步驟,瀏覽下單可以線上下下,支付可以現金、轉賬,收貨可以立刻取貨、郵寄等。可以看出,步驟是固定的,但是實現方法多樣。

那麼為了提高**的復用性和靈活性,我們可以使用模板方式來設計此類功能。模板方法模式是結構最簡單的行為型設計模式,它是一種類行為模式,在其結構中只存在父類與子類的繼承關係;它將一系列複雜的流程實現封裝在一系列基本的方法中,抽象父類中提供了乙個成為模板方法的方法來定義這些基本方法的執行順序,而通過子類來覆蓋或者實現某些關鍵的基本方法,因而達到了不同執行效果的目的。

定義乙個操作中演算法的框架,而將一些步驟延遲到子類中。模板方法模式使得子類可以不改變乙個演算法的結構即可重新定義該演算法的某些特定步驟。

public abstract class dailyitinerary 

public abstract void getup();

public abstract void eatbreakfast();

public abstract void eatlunch();

public abstract void eaddinner();

public abstract void sleep();

}

public class workingdaydailyitinerary extends dailyitinerary

@override

public void eatbreakfast()

@override

public void eatlunch()

@override

public void eaddinner()

@override

public void sleep()

}

public class restdaydailyitinerary extends dailyitinerary 

@override

public void eatbreakfast()

@override

public void eatlunch()

@override

public void eaddinner()

@override

public void sleep()

}

public class test 

}

設計模式學習 模板方法模式

型別 行為模式 模板方法模式定義乙個操作中演算法的骨架,而將一些步驟延遲到子類中,使得子類可以不改變乙個演算法的結構即可重定義該演算法的某些 特定步驟。uml圖 新建賽車的父類 package car package public class car parent public void setsp...

設計模式學習 模板方法模式

1.雜言 設計模式,現在覺得每種模式像工業行業的一些典型零件。這些零件也可以變種出很多類似零件。吧這些零件組合起來,就成了一台機器。好吧,我現在是這麼理解的。一般 結構都是,一層呼叫一層,就是一般都是頂層的呼叫底層的。但模板方法確實反過來的,有父類呼叫子類的方法。這個聽說又牽扯到啥好萊塢原則。對於這...

設計模式學習 模板方法模式

模板方法模式 定義乙個操作中的演算法的骨架,而將一些步驟延遲到子類中,模板方法使得子類可以不改變乙個演算法的結構即可重定義該演算法的某些特定步驟.父類就應該要成為子類的模板,所有重複的 都應該要上公升到父類中,而不是讓每個子類都取重複,重要,複雜的演算法,可以把核心演算法設計為模板方法,周邊的相關細...