23種設計模式 之 Template模式(模板模式) C語言
阿新 • • 發佈:2019-01-12
- 作者:鄒祁峰
- 郵箱:[email protected]
- 部落格:http://blog.csdn.net/qifengzou
- 日期:2012.11.14
- 轉載請註明來自"祁峰"的CSDN部落格
1 概念定義
Template模式:對於某一個業務邏輯(演算法實現)在不同的物件中有不同的細節實現,但是整體處理/演算法邏輯的框架是一致的。Template提供了一個實現框架。
2 模式結構圖
圖1 Template模式結構圖
3 場景設計
假如新生剛剛入校,為了讓大家相互瞭解一下,此時班主任讓每一位同學依次:起立->自我介紹->坐下。
4 程式碼實現
分析:可以認為“起立->自我介紹->坐下”是一個流程框架,其中所有同學站起和坐下的動作是一樣的,但是每一位同學的自我介紹都是不一樣的。
-> 自我介紹[不同實現]
// 同學A的自我介紹void StudentAIntroduce(void){ fprintf(stdout , "My name is A! 我給大家唱首歌!...");}
// 同學B的自我介紹void StudentBIntroduce(void){ fprintf(stdout, "My name is B! 來到大學很興奮!...");}...
程式碼1 不同實現
-> 框架結構[共用框架]
// Temple模式函式(框架)void Framework(void (*func)(void)){ ... Standup(); /* 起立 */ func(); /* 自我介紹 */ Sitdown(); /* 坐下 */ ...}
程式碼2 共用框架
-> Template模式使用
int main(void){ fprintf(stdout, "老師:請各位同學做自我介紹!"); Framework(StudentAIntroduce); Framework(StudentBIntroduce); ... return 0;}
程式碼3 使用參考
再分享一下我老師大神的人工智慧教程吧。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們人工智慧的隊伍中來!https://blog.csdn.net/jiangjunshow