亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

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

C++設計模式之簡單工廠模式實例

2020-01-26 15:17:38
字體:
來源:轉載
供稿:網友

問題描述

之前在公司做了一個windows 8平臺的閱讀器。首先,需要將電子書中的內容渲染到屏幕上,而電子書每一頁都包含各種各樣的內容,比如:圖形、圖像和文字等等;不同的內容,就是不同的對象;在將不同的內容渲染到屏幕上之前,就需要new操作,建立不同的對象,然后再在屏幕上進行描繪。這個時候,就需要進行很多new操作,new操作分布在代碼的不同地方,管理起來很麻煩,而且也很亂,到后期擴展和維護的時候,有的時候,對象多的讓開發人員不知道這個對象是干什么的,這就增加了難度;同時,new操作,都會有對應的異常處理,最后,就會發現,在代碼中,new了一個對象,然后,就跟著一段異常處理代碼,這時編碼變的極其混亂和臃腫。那么怎么辦?怎么辦?此時,我們需要一個新的類,專門從事對象的建立和釋放,之后,對象的各種操作,和這個類沒有任何關系。這個專門建立對象的類,向外暴漏創建對象的接口,供外部調用。

工廠模式有一種非常形象的描述,建立對象的類就如一個工廠,而需要被建立的對象就是一個個產品;在工廠中加工產品,使用產品的人,不用在乎產品是如何生產出來的。從軟件開發的角度來說,這樣就有效的降低了模塊之間的耦合。

UML類圖

對于工廠模式,具體上可以分為三類:

1.簡單工廠模式;
2.工廠方法模式;
3.抽象工廠模式。

對于上面的三種工廠模式,從上到下逐步抽象,并且更具一般性。而這篇博文主要講的是簡單工廠模式,后兩種會在之后的博文中接著總結。

ProductA、ProductB和ProductC繼承自Product虛擬類,Show方法是不同產品的自描述;Factory依賴于ProductA、ProductB和ProductC,Factory根據不同的條件創建不同的Product對象。

適用場合

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

代碼實現:

/*** FileName   : SimpleFactoryPatternDemo** Author    : Jelly Young** Date     : 2013/11/17** Description : More information*/ #include <iostream>#include <vector>using namespace std; typedef enum ProductTypeTag{  TypeA,  TypeB,  TypeC}PRODUCTTYPE; // Here is the product classclass Product{public:  virtual void Show() = 0;}; class ProductA : public Product{public:  void Show()  {    cout<<"I'm ProductA"<<endl;  }}; class ProductB : public Product{public:  void Show()  {    cout<<"I'm ProductB"<<endl;  }}; class ProductC : public Product{public:  void Show()  {    cout<<"I'm ProductC"<<endl;  }}; // Here is the Factory classclass Factory{public:  Product* CreateProduct(PRODUCTTYPE type)  {    switch (type)    {    case TypeA:      return new ProductA();     case TypeB:      return new ProductB();     case TypeC:      return new ProductC();     default:      return NULL;    }  }}; int main(int argc, char *argv[]){  // First, create a factory object  Factory *ProductFactory = new Factory();  Product *productObjA = ProductFactory->CreateProduct(TypeA);  if (productObjA != NULL)    productObjA->Show();   Product *productObjB = ProductFactory->CreateProduct(TypeB);  if (productObjB != NULL)    productObjB->Show();   Product *productObjC = ProductFactory->CreateProduct(TypeC);  if (productObjC != NULL)    productObjC->Show();   delete ProductFactory;  ProductFactory = NULL;   delete productObjA;  productObjA = NULL;   delete productObjB;  productObjB = NULL;       delete productObjC;  productObjC = NULL;   return 0;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美性极品xxxx娇小| 国产在线日韩在线| 在线观看国产精品日韩av| 日韩精品免费在线视频观看| 中文字幕亚洲第一| 欧美成人在线网站| 欧美精品在线第一页| www.日韩av.com| 日韩美女免费视频| 97婷婷大伊香蕉精品视频| 亚洲欧美资源在线| 久久中文久久字幕| 国产精品日韩欧美大师| 日韩亚洲精品电影| 欧美国产日韩一区二区在线观看| 日韩免费看的电影电视剧大全| 亚洲性猛交xxxxwww| 久久久久久尹人网香蕉| 一区二区亚洲欧洲国产日韩| 伊人成人开心激情综合网| 国产精品成人品| 久久久久久久国产精品视频| 欧美性猛交xxx| 伊人伊成久久人综合网站| 在线播放国产精品| 亚洲人成电影网站色xx| 亚洲性xxxx| 久久免费国产精品1| 欧美乱妇40p| 国产精品免费一区| 日本成熟性欧美| 色噜噜狠狠狠综合曰曰曰88av| 国产精品福利观看| 中文字幕精品久久| 日韩在线观看免费全集电视剧网站| 亚洲电影免费观看| 欧美性色视频在线| 久久精品成人欧美大片| 国产专区欧美专区| 国产丝袜精品第一页| 欧美色欧美亚洲高清在线视频| 午夜精品一区二区三区在线视| 亚洲欧美在线磁力| 久久久久久一区二区三区| 91亚洲永久免费精品| 美女少妇精品视频| 久久免费视频网站| 午夜精品一区二区三区视频免费看| 在线观看日韩专区| 成人免费福利在线| 日本一区二区三区四区视频| 夜色77av精品影院| 色老头一区二区三区在线观看| 午夜精品久久久久久99热软件| 久久精品视频一| 91精品免费看| 久久久久久成人精品| 日韩精品福利在线| 国产成人精品久久久| www.久久撸.com| 国产专区欧美专区| 国产色婷婷国产综合在线理论片a| 最近2019中文字幕mv免费看| 国产欧美婷婷中文| 亚洲一区国产精品| 91精品国产网站| 欧美成年人视频| 国产精品一区二区三| 色综久久综合桃花网| 亚洲激情视频网| 精品久久国产精品| 精品露脸国产偷人在视频| 亚洲男人天堂视频| 欧美亚洲成人网| 秋霞av国产精品一区| 一本久久综合亚洲鲁鲁| 海角国产乱辈乱精品视频| 国产精品丝袜久久久久久不卡| 欧美激情网友自拍| 欧美在线视频a| 日本亚洲欧美三级| 欧美激情视频三区| 国产精品video| 亚洲精品国产精品乱码不99按摩| 亚洲精品黄网在线观看| 亚洲网站在线播放| 欧美日韩一区二区三区| 欧美日韩中文字幕日韩欧美| 一区二区国产精品视频| 亚洲性生活视频在线观看| 一区二区三区四区在线观看视频| 欧美日本中文字幕| 久久视频免费观看| 亚洲精品国精品久久99热| 亚洲成人aaa| 欧美在线视频播放| 欧美日韩美女在线观看| 亚洲成av人片在线观看香蕉| 久久久久五月天| 欧洲成人午夜免费大片| 上原亚衣av一区二区三区| 日韩av综合中文字幕| 欧美在线性爱视频| 少妇精69xxtheporn| 亚洲一级黄色片| 久久精品小视频| 久久99久国产精品黄毛片入口| 一区二区国产精品视频| 亚洲一区二区三区香蕉| 欧美精品久久一区二区| 亚洲摸下面视频| 成人午夜在线视频一区| 91在线视频成人| 国产精品福利在线观看网址| 亚洲精品日韩激情在线电影| 国产一区二区三区在线播放免费观看| 欧美成人精品在线视频| 日韩精品中文字幕久久臀| 国产在线高清精品| 性欧美在线看片a免费观看| 在线不卡国产精品| 欧美电影免费在线观看| 亚洲jizzjizz日本少妇| 欧美午夜激情视频| 亚洲国产欧美精品| 久久久人成影片一区二区三区观看| 欧美大秀在线观看| 高清日韩电视剧大全免费播放在线观看| 国产综合在线观看视频| 一区二区三欧美| 欧美激情精品在线| 色综合天天狠天天透天天伊人| 国产欧美一区二区三区久久人妖| 亚洲精品国产美女| 日韩激情av在线播放| 91成人在线视频| 国产精品成人一区| 一本色道久久综合狠狠躁篇的优点| 亚洲国产欧美自拍| 大荫蒂欧美视频另类xxxx| 久久精品久久久久电影| 久久视频在线播放| 国产裸体写真av一区二区| 国产成人精品电影| 国产一区二区三区欧美| 日韩中文字幕免费视频| 国产精品入口免费视频一| 国外成人在线视频| 国产精品久久久久久久久粉嫩av| 久久影院中文字幕| 久久久91精品国产一区不卡| 亚洲色图美腿丝袜| 成人精品久久一区二区三区| 国产精品免费一区豆花| 久久亚洲春色中文字幕| 亚洲美女视频网站| 深夜精品寂寞黄网站在线观看| 成人黄色片网站| 欧美大秀在线观看| 国产精品日韩欧美综合| 草民午夜欧美限制a级福利片| 国产成人+综合亚洲+天堂| 欧美性生交大片免费| 69精品小视频|