tft每日頭條

 > 生活

 > 26種設計模式總結

26種設計模式總結

生活 更新时间:2024-10-14 22:19:10

26種設計模式總結?介紹:工廠模式是一種創建型設計模式,同時也是一種比較典型的解耦模式,工廠模式的實質其實就是" 定義一個生産的接口,讓客戶來決定具體生産什麼産品 ",現在小編就來說說關于26種設計模式總結?下面内容希望能幫助到你,我們來一起看看吧!

26種設計模式總結(設計模式之工廠模式)1

26種設計模式總結

介紹:

工廠模式是一種創建型設計模式,同時也是一種比較典型的解耦模式,工廠模式的實質其實就是" 定義一個生産的接口,讓客戶來決定具體生産什麼産品 "。


作用:

  • 能夠有效的封裝代碼,隐蔽具體的生産邏輯:将産品的具體生産過程封裝起來,使得調用者根本無需關心産品的具體生産過程,隻需告訴工廠自己需要什麼樣的産品就可以。即便生産過程有所調整,也是對調用者沒有任何影響的;
  • 擴展性強:當我們新增另外種類的産品時,對其他類型的産品沒有任何影響;

類比:

一個衣服工廠可以根據不同的訴求生産出不同面料的衣服,客戶隻需要告訴工廠要生産什麼面料的衣服就可以,具體生産過程是工廠自己的事情;


代碼示例:

typedef enum { COTTON, LEATHER, FABRIC_MAX, }; typedef struct _Clothing { int fabric; /*面料*/ void (*make_Clothing)(void); }Clothing; void cotton_clothes(void) { printf("Make cotton clothes\r\n"); } void leather_clothes(void) { printf("Make leather clothes\r\n"); } Clothing* manufacture_clothing(int fabric) { assert(fabric < FABRIC_MAX); Clothing* pClothing = (Clothing*)malloc(sizeof(Clothing)); assert(NULL != pClothing); memset(pClothing, 0, sizeof(Clothing)); pClothing->fabric = fabric; switch(fabric) { case COTTON: pClothing->make_clothing = cotton_clothes; break; case LEATHER: pClothing->make_clothing = leather_clothes; break; } return pClothing; }

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved