1. 程式人生 > >23種設計模式 之 Template模式(模板模式) C語言

23種設計模式 之 Template模式(模板模式) C語言

               


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