標籤: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.
順序 選擇 迴圈 總結
簡單原廠模式