簡單工廠模式并不是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();}
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。
新聞熱點
疑難解答