国产探花免费观看_亚洲丰满少妇自慰呻吟_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();}

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 伊宁县| 卢龙县| 怀安县| 宿松县| 通山县| 内江市| 康乐县| 马鞍山市| 芮城县| 三原县| 沙洋县| 喀喇| 鹤山市| 新乐市| 柘城县| 洪洞县| 林芝县| 万山特区| 南和县| 剑河县| 保定市| 繁峙县| 慈利县| 克拉玛依市| 黑山县| 卓资县| 商水县| 北海市| 红原县| 台山市| 大化| 冀州市| 古蔺县| 凤阳县| 武乡县| 开江县| 黄冈市| 罗田县| 县级市| 铁岭市| 新沂市|