【設計模式遊戲完美開發】模板模式

模板模式不推薦使用,因爲難把控,難重構,不易於應對高複雜度的業務流程

模板模式是着重於將一些可以劃分子流程的邏輯進行優化的一種手段。

例如:

製作一支鉛筆 和 一支鋼筆的流程:

可以抽象劃分爲 製作筆芯  + 製作外殼 + 組裝 = 一支筆

那麼製作筆芯、製作外殼、組裝這三個就是所謂的“子流程”,這三個子流程是一定會按照這個順序來進行,此時就能利用模板模式來進行設計。

創建一個製作接口類, 製造接口類有三個方法,你猜猜是什麼?

當然是製作筆芯、製作外殼、組裝啦~  

接着創建對應的製作筆芯實現類 和 製作鋼筆實現類 ,實現這三個方法。

這三個子流程已經準備好了,而且之前也說了子流程的按順序調用就能製作出一支筆,所以在製作接口類會有一個方法

CreatePen()進行調用 製作筆芯,製作外殼,組件,最終生產出一支筆。

外部如果想生產一支鋼筆,只需創建制作鋼筆類對象,然後調用CreatePen()方法即可 獲得一支筆啦,如果想獲取別的筆也是一樣道理。

模板方法就是將這個複雜的創建邏輯抽象出來,並放入自身內部進行,外部只需知道一個接口即可。

如果沒有模板方法,你創一支筆就可能要調用3個接口(製作筆芯 + 製作外殼 + 組裝)。

當然,回想到爲什麼我說不推薦,是因爲假設其中一支筆的流程需要變動,那麼這個模板就成累贅了。同時,越複雜的邏輯是很難劃分出一個很好的流程(當然是指抽象劃分)。

模板方法優點:將可能出現重複的“算法流程”,從子類提升到父類,減少重複的發生,由子類實現具體流程,父類來控制調用子流程們,外部只需知道一個接口。

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章