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

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

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

2020-01-26 13:40:13
字體:
來源:轉載
供稿:網友

簡單工廠模式并不是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();}

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 福泉市| 东台市| 称多县| 湖州市| 博客| 安庆市| 黑山县| 葵青区| 大荔县| 定襄县| 襄樊市| 舞阳县| 临湘市| 丹寨县| 广西| 绥江县| 陆河县| 沂源县| 手游| 泸水县| 合肥市| 敦煌市| 汕头市| 牟定县| 龙游县| 辰溪县| 开阳县| 安仁县| 通江县| 樟树市| 乌兰察布市| 新蔡县| 禹城市| 星子县| 平和县| 黄冈市| 潜江市| 郓城县| 拉萨市| 桂平市| 孟津县|