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

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

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

2020-05-23 14:21:38
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了C++設計模式之簡單工廠模式實例,工廠模式有一種非常形象的描述,建立對象的類就如一個工廠,而需要被建立的對象就是一個個產品,需要的朋友可以參考下
 
 

問題描述

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

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

UML類圖

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

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

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

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

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 class
class 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 class
class 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
2025国产精品视频| 国产精品久久久久久久9999| x99av成人免费| 亚洲最大福利视频| 亚洲一区二区久久| 日韩精品中文字幕在线播放| 神马国产精品影院av| 欧美一性一乱一交一视频| 一区二区三区www| 国产亚洲在线播放| 日韩av综合中文字幕| 亚洲九九九在线观看| 精品久久久999| 亚洲人成电影网站色…| 亚洲国产天堂网精品网站| 日韩av免费看| 欧美综合国产精品久久丁香| 久久人人爽亚洲精品天堂| 久久久免费在线观看| 日韩中文字幕精品视频| 国产精品一区二区三区久久| 欧美激情videoshd| 国产成人一区二| 久久国产精品影视| 欧美黑人极品猛少妇色xxxxx| 欧美精品成人在线| 高清欧美性猛交| 日本久久久久久久久久久| 国产精品久久久久免费a∨大胸| 最近2019年好看中文字幕视频| 亚洲一区国产精品| 国内精品视频在线| 91高潮在线观看| 亚洲天堂av在线播放| 日本一区二区在线播放| 日韩精品免费在线观看| 欧美xxxx综合视频| 日韩高清电影免费观看完整| 欧美一区在线直播| 日av在线播放中文不卡| 日韩在线小视频| 精品中文字幕久久久久久| 国产精品69精品一区二区三区| 欧美激情精品久久久久久| 欧美孕妇毛茸茸xxxx| 欧美视频不卡中文| 国产精品亚洲一区二区三区| 欧美放荡办公室videos4k| 欧美午夜精品久久久久久浪潮| 在线日韩av观看| 精品网站999www| 福利一区视频在线观看| 九九九久久久久久| 亚洲久久久久久久久久| 亚洲天堂av高清| 国产偷国产偷亚洲清高网站| 欧美精品在线观看91| 亚洲**2019国产| 97久久伊人激情网| 亚洲r级在线观看| 国产主播精品在线| 亚洲www在线观看| 国产精品亚洲美女av网站| 日韩免费在线视频| 欧美亚洲视频一区二区| 国产91免费观看| 国产亚洲a∨片在线观看| 91久久精品在线| 久久中文精品视频| 亚洲女性裸体视频| 国产精品日韩欧美大师| 日韩欧美在线字幕| 亚洲丝袜在线视频| 亚洲日本aⅴ片在线观看香蕉| 日韩黄色在线免费观看| 91久久嫩草影院一区二区| 欧美精品激情在线| 97国产精品免费视频| 福利一区福利二区微拍刺激| 国产亚洲精品久久久久久| 91精品国产高清久久久久久久久| 日韩电影中文 亚洲精品乱码| 亚洲福利精品在线| 日韩精品中文在线观看| 日韩精品一区二区视频| 亚洲2020天天堂在线观看| 国产999在线观看| 国产一区深夜福利| 亚洲国产另类 国产精品国产免费| 久久色免费在线视频| 日韩精品视频在线观看网址| 欧美激情欧美激情在线五月| 欧美日韩性视频| 大伊人狠狠躁夜夜躁av一区| 欧美巨大黑人极品精男| 日韩经典中文字幕在线观看| 欧美高清视频一区二区| 成人免费在线视频网址| 日韩av有码在线| 国产精品视频一区国模私拍| 欧美日韩在线另类| 午夜精品久久久久久久白皮肤| 精品在线小视频| 欧美性xxxx| 精品视频在线观看日韩| 国产精品国产三级国产aⅴ9色| 精品视频在线观看日韩| 日韩一二三在线视频播| 成人黄色av网站| 久久九九免费视频| 亚洲天堂网在线观看| 粉嫩老牛aⅴ一区二区三区| 久久久视频在线| 国产精品吹潮在线观看| yellow中文字幕久久| 亚洲第一天堂无码专区| 2018日韩中文字幕| 日韩大陆欧美高清视频区| 国产精品福利无圣光在线一区| 狠狠色香婷婷久久亚洲精品| 欧洲中文字幕国产精品| 精品久久久久久久久久久久久| 日本高清久久天堂| 亚洲精品美女久久久久| 色综合视频一区中文字幕| 亚洲成av人乱码色午夜| 日韩精品中文字幕在线观看| 亚洲第一福利网站| 国产亚洲精品久久久| 日韩精品极品在线观看播放免费视频| 欧美乱大交做爰xxxⅹ性3| 久久青草精品视频免费观看| 亚洲精品日韩丝袜精品| 日本a级片电影一区二区| 亚洲人成电影在线观看天堂色| 91天堂在线观看| 国产精品久久久久久久电影| 久久人人爽人人爽人人片av高请| 国产香蕉精品视频一区二区三区| 国产欧美亚洲精品| 久久久精品视频成人| 中文字幕日韩电影| 欧美影院久久久| 精品成人久久av| 欧美大片在线影院| 亚洲欧美激情视频| 福利二区91精品bt7086| 大胆欧美人体视频| 成人亚洲激情网| 亚洲欧美中文另类| 欧美视频免费在线| 欧美成人亚洲成人日韩成人| 国内精品久久久久影院 日本资源| 欧美有码在线观看| 国产精品视频xxx| 欧美第一黄网免费网站| 欧美日韩中国免费专区在线看| 国产精品香蕉av| 色伦专区97中文字幕| 91av视频在线免费观看| 欧美激情亚洲另类| 国产成人精品久久二区二区| 日韩电影免费在线观看| 欧美综合国产精品久久丁香|