程式設計中的很多概念,生活中都有使用。
模板方法設計模式,作為gof的24中設計模式非常常用的設計模式,生活中也經常使用。
比如我們申請銀行卡的時候,需要填寫如下模板。每個人申請銀行卡只需要在***的地方替換為自己的資訊就可以了
信用卡申請表
客戶姓名:***
身份證號:************
本人同意以下授權,例項省略例項省略例項省略例項
省略例項省略例項省略例項省略例項省略。
申請人簽名:***x
申請日期:***xx
上面的模板其實是每個人申請信用卡的重複文字部分,重複的部分做成模板,統一的模板列印出來。每個人只需要填寫空白部分。
模板方法,就是共用重複的部分做成模板,每個場景只需要填寫變化部分。達到減少重複的目的。
程式設計裡使用的模板思想和申請銀行卡用的模板是完全一樣的,目的是為了不重複書寫重複的**。填空形式不過從銀行卡申請表變成了抽象類,申請表的空白變成了抽象方法。填空的過程替換為子類程式繼承父類進行實現抽象方法或overwrite。
例項: 比如我們網際網路架構中,為了提公升效能,我們可以使用資料庫+快取提公升資料的訪問速度。資料庫和快取的資料配合使用的**是可以共用到各個業務系統,比如可以用於部落格文章快取,也適用於電商的商品快取:模板部分:
@slf4j
public abstract class dataloader
}//從持久化介質取
if (dataloaderstrategyenum.cache_db.equals(dataloadstrategyenum))
}return object;
}}
具體填空的子類如下:
dataloaderdataloader = new dataloader()
@override
public cplarticle getobjectfromcache(idpin idpin)
@override
public void setobjecttocache(idpin idpin, cplarticle cplarticle)
};var idpin = idpin.of(articleid, flycontext.getpin());
var cplarticle = dataloader.getobject(idpin, strategyenum);
設計模式 GOF23最常用對比
1.單例模式 好處 使用場景2.原型模式 好處 1.節省程式中運算元據時需要大量的開闢物件 可以節省物件的開闢時間,提高程式效能。使用場景 1.使用者資訊批量上傳 比如excel 上傳使用者資訊 大量的建立物件。2.列表資訊 集合資訊 物件申請。工廠模式 工廠模式包含 工廠方法 與 抽象工廠 好處 ...
最常用的設計模式 模板方法模式(C 實現)
模板方法模式是設計模式行為型中最簡單的一種設計模式。在實際中你甚至可能經常用到,只是你自己不知道它是一種設計模式罷了。模板方法模式定義乙個操作中的演算法的骨架,而將一些步驟延遲到子類中。模板方法使得子類可以不改變乙個演算法的結構即可重定義該演算法的某些特定步驟。角色 抽象類 abstractclas...
GoF23設計模式 行為型設計模式 模板方法模式
設計乙個系統,知道了演算法所需的關鍵步驟,而且明確這些步驟的執行順序,但某些步驟的具體實現未知,或者說某些步驟的實現與具體的環境有關,系統該如何設計?1 去銀行辦理業務,一般有四個流程 取號 排隊 辦理具體業務 對工作人員進行評價。其中取號 排隊和對工作人員的評價是對每個客戶都是一樣的,辦理具體的業...