Template Method(模板方法)--类行为型模式
Template Method(模板方法)–類行為型模式
一、意圖
定義一個操作中的算法的骨架,而將一些步驟延遲到子類中。TemplateMethod使得子類可以不改變一個算法的結構即可重定義該算法的某些特定步驟。
二、動機
1.在軟件構建過程中,對于某一項任務,它常常有穩定的整體操作 結構,但各個子步驟卻有很多改變的需求,或者由于固有的原因 (比如框架與應用之間的關系)而無法和任務的整體結構同時實現。
2.如何在確定穩定操作結構的前提下,來靈活應對各個子步驟的變 化或者晚期實現需求?
三、適用性
1.一次性實現一個算法的不變的部分,并將可變的行為留給子類來實現。
2.各子類中公共的行為應被提取出來并集中到一個公共父類中以避免代碼重復。首先識別現有代碼中的不同之處,并且將不同之處分離為新的操作。最后,用一個調用這些新的操作的模板方法來替換這些不同的代碼。
3.控制子類擴展。模板方法只在特定點調用“hook”操作,這樣就只允許在這些點進行擴展。
四、結構
五、效果
模板方法導致一種反向的控制結構。即一個父類調用一個子類的操作。
六、實現
1.使用C++訪問控制。
2.盡量減少原語操作。
3.命名約定。
七、要點總結
1.Template Method模式是一種非常基礎性的設計模式,在面向對象系統中有著大量的應用。它用最簡潔的機制(虛函數的多態性) 為很多應用程序框架提供了靈活的擴展點,是代碼復用方面的基本實現結構。
2.除了可以靈活應對子步驟的變化外,“不要調用我,讓我來調用你”的反向控制結構是Template Method的典型應用。
3.在具體實現方面,被Template Method調用的虛方法可以具有實 現,也可以沒有任何實現(抽象方法、純虛方法),但一般推薦將 它們設置為protected方法。
八、相關模式
Factory Method模式常被模板方法調用。
Strategy:模板方法是使用繼承來改變算法的一部分。Strategy使用委托來改變整個算法。
九、舉例說明
自己把控整個制作流程,部分細節讓小弟實現。
本文為李建忠設計模式視頻的筆記以及《設計模式-可復用面向對象的軟件的基礎》和自己的部分見解
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的Template Method(模板方法)--类行为型模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 喜欢的视频想保存喜欢的视频想保存在百度网
- 下一篇: 纪念碑谷通关攻略(第六章迷宫)