簡單原廠模式

來源:互聯網
上載者:User

標籤:style   blog   http   color   os   io   ar   art   div   

【1】什麼是簡單原廠模式?

核心思想:用一個工廠來根據輸入的條件產生不同的類,然後根據不同類的virtual函數得到不同的結果。

理解:根據條件產生不同的執行個體。利用多態的特性,調用同名方法,不同的執行個體將得到不同的結果。

【2】程式碼範例如下:

代碼如下:

  1 #include <iostream>  2 #include <string>  3 using namespace std;  4   5 /*  6  * 運算基類  7  */  8 class Operation  9 { 10 public: 11     double numberA; 12     double numberB; 13 public: 14     virtual double  getResult() 15     { 16         return 0; 17     } 18 }; 19  20 /* 21  * 加法運運算元類 22  */ 23 class addOperation : public Operation 24 { 25     double getResult() 26     { 27         return numberA + numberB; 28     } 29 }; 30  31  /* 32   * 減法運運算元類 33   */ 34 class subOperation : public Operation 35 { 36     double getResult() 37     { 38         return numberA - numberB; 39     } 40 }; 41  42  /* 43   * 乘法運運算元類 44   */ 45 class mulOperation : public Operation 46 { 47     double getResult() 48     { 49         return numberA * numberB; 50     } 51 }; 52  53  /* 54   * 除法運運算元類 55   */ 56 class divOperation : public Operation 57 { 58     double getResult() 59     { 60         return numberA / numberB; 61     } 62 }; 63  64  /* 65   * 簡單構建工廠 66   */ 67 class operFactory 68 { 69 public: 70     static Operation *createOperation(char c) 71     { 72         switch (c) 73         { 74         case ‘+‘: 75             return new addOperation; 76             break; 77         case ‘-‘: 78             return new subOperation; 79             break; 80         case ‘*‘: 81             return new mulOperation; 82             break; 83         case ‘/‘: 84             return new divOperation; 85             break; 86         default: 87             break; 88         } 89     } 90 }; 91  92  /* 93   * 用戶端應用樣本 94   */ 95 void main() 96 { 97     Operation *oper = operFactory::createOperation(‘+‘); 98     oper->numberA = 9; 99     oper->numberB = 99;100     cout << oper->getResult() << endl;101 }
View Code

 

Good  Good  Study, Day  Day  Up.

順序   選擇   迴圈   總結

簡單原廠模式

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.