欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語言 設(shè)計模式之訪問者模式

 更新時間:2017年01月28日 09:15:26   投稿:lqh  
這篇文章主要介紹了C語言 設(shè)計模式之訪問者模式的相關(guān)資料,需要的朋友可以參考下

C語言訪問者模式

概要:

訪問者模式,聽上去復(fù)雜一些。但是,這種模式用簡單的一句話說,就是不同的人對不同的事物有不同的感覺。比如說吧,豆腐可以做成麻辣豆腐,也可以做成臭豆腐。可是,不同的地方的人未必都喜歡這兩種豆腐。四川的朋友可能更喜歡辣豆腐,江浙的人就可能對臭豆腐更喜歡一些。那么,這種情況應(yīng)該怎么用設(shè)計模式表達呢?

typedef struct _Tofu 
{ 
  int type; 
  void (*eat) (struct _Visitor* pVisitor, struct _Tofu* pTofu); 
}Tofu; 
 
typedef struct _Visitor 
{ 
  int region; 
  void (*process)(struct _Tofu* pTofu, struct _Visitor* pVisitor); 
}Visitor; 

    就是這樣一個豆腐,eat的時候就要做不同的判斷了。

void eat(struct _Visitor* pVisitor, struct _Tofu* pTofu) 
{ 
  assert(NULL != pVisitor && NULL != pTofu); 
 
  pVisitor->process(pTofu, pVisitor); 
} 

    既然eat的操作最后還是靠不同的visitor來處理了,那么下面就該定義process函數(shù)了。

void process(struct _Tofu* pTofu, struct _Visitor* pVisitor) 
{ 
  assert(NULL != pTofu && NULL != pVisitor); 
 
  if(pTofu->type == SPICY_FOOD && pVisitor->region == WEST || 
    pTofu->type == STRONG_SMELL_FOOD && pVisitor->region == EAST) 
  { 
    printf("I like this food!\n"); 
    return; 
  } 
 
  printf("I hate this food!\n");   
} 

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

  • C++?AnimeGAN實現(xiàn)照片一鍵動漫化

    C++?AnimeGAN實現(xiàn)照片一鍵動漫化

    AnimeGAN是是由神經(jīng)網(wǎng)絡(luò)風(fēng)格遷移加生成對抗網(wǎng)絡(luò)(GAN)而成,它是基于CartoonGAN的改進,并提出了一個更加輕量級的生成器架構(gòu)。本文將介紹如何運用AnimeGAN實現(xiàn)照片一鍵動漫化,需要的可以參考一下
    2021-11-11
  • C語言程序環(huán)境中的預(yù)處理詳解

    C語言程序環(huán)境中的預(yù)處理詳解

    這篇文章主要為大家詳細介紹了C語言程序環(huán)境中的預(yù)處理,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • 為什么要學(xué)習(xí)C語言 C語言優(yōu)勢分析

    為什么要學(xué)習(xí)C語言 C語言優(yōu)勢分析

    不止一個學(xué)生問到我:“老師,為什么我們的應(yīng)用程序設(shè)計要學(xué)C語言而不是別的?C語言不是已經(jīng)過時了嗎?如果現(xiàn)在要寫一個Windows程序,用VB或Dephi開發(fā)多快呀,用C行嗎?退一萬步,為什么選擇C而不是C++呢?”
    2013-07-07
  • C語言的Struct Hack筆記

    C語言的Struct Hack筆記

    這篇文章主要介紹了C語言的Struct Hack例子,個人的一篇筆記,需要的朋友可以參考下吧
    2014-04-04
  • C++獲取當(dāng)前系統(tǒng)時間的方法總結(jié)

    C++獲取當(dāng)前系統(tǒng)時間的方法總結(jié)

    這篇文章主要介紹了C++獲取當(dāng)前系統(tǒng)時間的方法,實例總結(jié)了四個獲取系統(tǒng)時間的方法,非常具有實用價值,需要的朋友可以參考下
    2015-04-04
  • 一文讀懂C++中的繼承之菱形繼承(案例分析)

    一文讀懂C++中的繼承之菱形繼承(案例分析)

    這篇文章主要介紹了C++中的繼承之菱形繼承的相關(guān)知識,通過案例給大家詳細分析介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2021-04-04
  • C語言指針詳解及用法示例

    C語言指針詳解及用法示例

    這篇文章主要介紹了C語言指針詳解及用法示例,介紹了其相關(guān)概念,然后分享了幾種用法,具有一定參考價值。需要的朋友可以了解下。
    2017-11-11
  • 哈希表實驗C語言版實現(xiàn)

    哈希表實驗C語言版實現(xiàn)

    以下是對哈希表實驗用C語言實現(xiàn)的代碼進行了詳細的分析介紹,需要的朋友可以參考下
    2013-07-07
  • C++讀取配置文件的示例代碼

    C++讀取配置文件的示例代碼

    這篇文章主要介紹了C++讀取配置文件的示例代碼,幫助大家更好的理解和學(xué)習(xí)C++開發(fā),感興趣的朋友可以了解下
    2020-08-08
  • C語言實現(xiàn)BMP轉(zhuǎn)換JPG的方法

    C語言實現(xiàn)BMP轉(zhuǎn)換JPG的方法

    這篇文章主要介紹了C語言實現(xiàn)BMP轉(zhuǎn)換JPG的方法,涉及C#圖片格式轉(zhuǎn)換的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07

最新評論