国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

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

C++設(shè)計(jì)模式之簡(jiǎn)單工廠模式實(shí)例

2020-05-23 14:21:38
字體:
供稿:網(wǎng)友
這篇文章主要介紹了C++設(shè)計(jì)模式之簡(jiǎn)單工廠模式實(shí)例,工廠模式有一種非常形象的描述,建立對(duì)象的類就如一個(gè)工廠,而需要被建立的對(duì)象就是一個(gè)個(gè)產(chǎn)品,需要的朋友可以參考下
 
 

問題描述

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

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

UML類圖

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

1.簡(jiǎn)單工廠模式;
2.工廠方法模式;
3.抽象工廠模式。

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

C++設(shè)計(jì)模式之簡(jiǎn)單工廠模式實(shí)例

ProductA、ProductB和ProductC繼承自Product虛擬類,Show方法是不同產(chǎn)品的自描述;Factory依賴于ProductA、ProductB和ProductC,F(xiàn)actory根據(jù)不同的條件創(chuàng)建不同的Product對(duì)象。

適用場(chǎng)合

1.在程序中,需要?jiǎng)?chuàng)建的對(duì)象很多,導(dǎo)致對(duì)象的new操作多且雜時(shí),需要使用簡(jiǎn)單工廠模式;
2.由于對(duì)象的創(chuàng)建過程是我們不需要去關(guān)心的,而我們注重的是對(duì)象的實(shí)際操作,所以,我們需要分離對(duì)象的創(chuàng)建和操作兩部分,如此,方便后期的程序擴(kuò)展和維護(hù)。

代碼實(shí)現(xiàn):
/*
** 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;
}


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
国产一区在线视频观看| 国产精选在线视频拍拍拍| 国产在线色视频| 欧洲一区av| www.xxx黄| 中文字幕视频在线| 国产一级黄色片免费| 国产黄色免费在线观看| 国产高清在线观看| 国产丝袜在线播放| 性欧美精品xxxx| 超碰在线观看免费| 国产午夜精品一区理论片| 精品福利视频导航大全| 蜜桃av在线免费观看| 国产偷倩在线播放| 日本电影在线观看| 国产一级又黄| 欧美日韩在线中文字幕| 国产精品99999| 黄色激情网址| 亚洲91av| 永久免费在线观看| 国产精品探花在线| 国产小视频在线高清播放| 亚洲视频在线观看不卡| 天天操人人干| 免费看的av| 亚洲成人在线播放| 99在线欧洲视频| 国产导航在线| 国产91在线视频蝌蚪| 国产午夜电影| 黄色片大全在线观看| 天天干天天摸| 在线视频婷婷| 91在线网址| 91久久精品国产性色| 国产亚洲精品拍拍拍拍拍| 亚洲91av| 亚洲精品自产拍在线观看| 精品黄色免费中文电影在线播放| 国产乱在线观看视频| 欧美日韩不卡中文字幕在线| 亚洲第一页在线播放| 亚洲尤物在线视频| 天天草天天草| 久久久久久91精品色婷婷| 久草视频国产| 尤物在线视频| 国产精品不卡一区二区三区在线观看| 91超碰国产在线| 国产网站在线免费观看| 尤物视频在线免费观看| 国产在线看片| 天堂在线免费观看| 国产丝袜精品丝袜| 99综合精品久久| 激情四房婷婷| 国产秀色在线www免费观看| 国产高清视频在线| а√最新版地址在线天堂| 好吊日视频在线观看| 尤物在线视频| 亚洲男人的天堂成人| 国产中文字幕在线| 国产福利资源| 久久久久久久久亚洲精品| 国产精品久久精品牛牛影视| 国产成在线观看免费视频| 在线成人综合色一区| 91sp网站在线观看入口| 国产xxxxx| 国产在线一区二区视频| 国产精彩视频在线观看免费蜜芽| gogo在线高清视频| 国产污视频在线| 久久综合精品视频| 国产va在线| 国产亚洲精品午夜高清影院| 永久免费不卡在线观看黄网站 | 欧美日韩不卡中文字幕在线| 最新黄网在线观看| 精品一区二区在线欧美| 国产在线精品一区二区不卡| 在线午夜视频| 国产精品二线| 国产探花在线观看| 成年网在线观看免费观看网址| 中文在线视频观看| 国产白浆在线| 最近免费中文字幕大全免费第三页| 夜色资源网av在先锋网站观看| 国产图片综合| 国产午夜精品一区理论片| 玖玖在线视频| 免费国产阿v视频在线观看| 尤物视频在线观看视频| 尤物视频在线免费观看| 国产鲁鲁视频在线观看特色| 亚洲天堂久久久| 精品国语对白精品自拍视| 国产视频1区| 国产高清免费在线播放| 91麻豆精品国产91久久| 国产精品xxx电影| 国产精品视频一区二区图片| 国产午夜视频在线观看| 国产视频xxxx| 99综合精品久久| 亚洲v片在线观看| 男人天堂99| 中文字幕不卡免费视频| 狠狠色综合久久婷婷| 国产在线视频自拍| 国产日韩欧美一区二区三区视频| 日本中文字幕在线视频| 最新中文字幕在线| 国产日产一区二区| 亚洲欧美精品中文第三| 九九热视频在线| 国产丝袜护土调教在线视频| 精品国产丝袜高跟鞋 | 91这里只有精品| 日本亚洲欧美| 激情网站在线| 国产成人精品综合网站| 在线国产一级| 国产免费av网站| 国产白浆在线| 成视频年人免费看黄网站| 国产深夜视频在线观看| jlzzjlzz欧美大全| 中文字幕免费在线视频| av男人的天堂网| 中文字幕有码在线视频| 99re热视频在线| 99热在线观看免费| 青青九九免费视频在线| 国产成人亚洲精品播放器下载 | www.九九热.com| 黄色网址在线免费播放| 伊人222成人综合网| 国产蜜臀在线| 青青国产在线| 亚洲视频日韩| 精品入口麻豆传煤| 国产精品扒开做爽爽爽的视频| 国产在线视频精品视频免费看| 在线视频中文字幕久| 国产一二三在线观看| www.色五月| 亚洲字幕成人中文在线观看| 中文字幕不卡免费视频| 国产免费电影网站入口| 久久久久久77777| 精品精品导航| av亚洲在线| 性网站在线观看| 亚洲欧美自拍另类| 小说区乱图片区| www黄在线观看| 啪啪免费视频一区| 麻豆精品视频入口| 超碰在线网站| 午夜国产在线| 69堂视频在线观看国产| 99久热re在线精彩视频| 中文乱码字幕高清在线观看| 2019天天操夜夜操| 99re热在线观看| 精品麻豆国产| 一级二级三级在线观看| 日韩黄色成人| 中文字幕第一页av| 在线免费黄色毛片| 久久久久久日本一区99| 国产亚洲精品拍拍拍拍拍| 精品伦理一区二区| 欧美韩日国产| 国产福利图片| 激情六月丁香| 在线免费看黄网站| 国产九色porn网址| av网站大全在线观看| 福利视频网站导航| 国产免费网址| 亚洲视频网站在线| 国产麻豆视频免费观看| 国产麻豆精品入口在线观看| 91午夜在线| 国产网友自拍电影在线| www在线观看播放免费视频日本| 国产天堂素人系列在线视频| av在线free| 91啦中文在线| 最近中文字幕mv免费高清电影 | 91极品在线| 天堂在线免费视频| 91中文在线|