国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C++設計模式之Static Factory模式詳解

2020-05-23 13:29:41
字體:
來源:轉載
供稿:網友

簡單工廠模式并不是GOF提出的23種設計模式中的一種。工廠模式有一種非常形象的描述,建立對象的類就如一個工廠,而需要被建立的對象就是一個個產品。

適用場合

1.在程序中,需要創建的對象很多,導致對象的new操作多且雜時,需要使用簡單工廠模式;
2.由于對象的創建過程是我們不需要去關心的,而我們注重的是對象的實際操作,所以,我們需要分離對象的創建和操作兩部分,如此,方便后期的程序擴展和維護。

1.定義抽象類,也就是接口

class Product{public: virtual void show()=0;};

2.定義需要具體實現類,繼承抽象類,假設有三個產品

class ProductA:public Product{public: virtual void show() { printf("ProductA/n"); }}; class ProductB:public Product{public: virtual void show() { printf("ProductB/n"); }}; class ProductC:public Product{public: virtual void show() { printf("ProductC/n"); }};

3.定義工廠類,負責生產產品,這里傳入具體的參數來決定生產那個產品

class Factory{public: Product* CreateProduct(int num) { switch(num)  //通過傳參實例化對象 { case 1:  return new ProductA();  break; case 2:  return new ProductB();  break; case 3:  return new ProductC();  break; default:  return NULL;  break; } }};

4.實際調用

int main(){ Factory* ProductFactory=new Factory();    //首先定有一個工廠對象 Product* A=ProductFactory->CreateProduct(1); //利用多態與工廠對象來傳參決定生產那個產品 A->show(); Product* B=ProductFactory->CreateProduct(2); B->show(); Product* C=ProductFactory->CreateProduct(3); C->show();}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新河县| 南康市| 霍邱县| 崇义县| 辰溪县| 浮梁县| 莱西市| 石阡县| 大安市| 临沭县| 忻州市| 涿州市| 错那县| 汝州市| 大埔县| 上饶县| 静乐县| 江川县| 济阳县| 贺兰县| 邵阳县| 怀来县| 玛曲县| 三明市| 措勤县| 罗山县| 会宁县| 启东市| 雅江县| 德阳市| 日喀则市| 沽源县| 喀喇沁旗| 瑞昌市| 大同县| 阳朔县| 杭锦后旗| 长乐市| 巴塘县| 云阳县| 小金县|