您好,登錄后才能下訂單哦!
簡單工廠模式并不是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(); }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。