設計模式(C 版) 簡單工廠模式

2021-07-09 08:14:03 字數 1868 閱讀 4676

為什麼要用設計模式?

1、設計模式是前人根據經驗總結出來的,使用設計模式,就相當於是站在了前人的肩膀上。

2、設計模式使程式易讀。熟悉設計模式的人應該能夠很容易讀懂運用設計模式編寫的程式。

3、設計模式能使編寫的程式具有良好的可擴充套件性,滿足系統設計的開閉原則。比如策略模式,就是將不同的演算法封裝在子類中,在需要新增新的演算法時,只需新增新的子類,實現規定的介面,即可在不改變現有系統原始碼的情況下加入新的系統行為。

4、設計模式能降低系統中類與類之間的耦合度。比如工廠模式,使依賴類只需知道被依賴類所實現的介面或繼承的抽象類,使依賴類與被依賴類之間的耦合度降低。

5、設計模式能提高**的重用度。比如介面卡模式,就能將系統中已經存在的符合新需求的功能**相容新的需求提出的介面 。

6、設計模式能為常見的一些問題提供現成的解決方案。

7、設計模式增加了重用**的方式。比如裝飾器模式,在不使用繼承的前提下重用系統中已存在的**。

目前總結的設計模式有23種使用廣泛 ,我們先談簡單工廠模式,光講定義很難明白的用法 ,我們引用乙個案例 ,然大家更好的明白簡單設計模式。

案例:假如寫乙個計算器,你可能很快的寫出如下**:

1public

class operation

2        20

21return  result;22

23         }  24

25    }

介面實現** 省略;

寫完這個運算類 我們可以復用此方法 ,可以在web版,手機等 寫計算器,但是如果我希望計算器在加乙個求平方根的功能,我們只需要在switch裡加個語句,似乎很簡單,但是你加個語句 卻要讓加減乘除一起編譯一遍 ,所以我們需要對上面進行修改,將每個方法分離,於是我們來用簡單工廠模式(******factory)。

運算類:

1namespace ******factory2 6

public

double numberb7

8public

virtual

double getresult()

12     }

13class operationadd:operation

14    

21     }

22class operationsub:operation

23    

30     }

31class operationmulti:operation

32    

39     }

40class operationdiv:operation

41    

48else

49            

54         }

55     }

56 }

工廠類:

1namespace ******factory

2 24

return oper;

25         }

26     }

27 }

現在,我們只需要輸入運算子,例項出相應的類就能實現計算器的結果:

operation oper = new operation();

oper = operationfactory.createoperate("+"); 

oper.numbera = 1;

oper.numberb = 2;

double result=oper.getresult();

如果我們需要加入什麼新運算,只需要新增子類就可以了,加分支和改介面都和運算類沒關係了!

簡單工廠模式的類圖:

大話設計模式C 版 簡單工廠模式

簡單工廠模式應該是所有設計模式中最簡單,也最基礎的一種模式,以下是乙個簡單的採用工廠模式寫乙個加減法的計算器。1 抽象介面類 依賴倒轉原則 高層和底層都要依賴於抽象,針對介面程式設計 class ioperation virtual ioperation virtual void setnum in...

設計模式 簡單工廠模式(C )

一.簡單工廠模式又稱靜態工廠方法模式 static factory method 它不是gof 所講的23種設計模式之一,但是它卻是我們在編碼過程中經常使用的方法之一。1.靜態工廠方法統一管理物件的建立。靜態工廠方法通過傳入的引數判斷決定建立哪乙個產品的例項,封裝了物件的建立,客戶端只管消費,實現了...

C 設計模式 簡單工廠模式

從設計模式的型別上來說,簡單工廠模式是屬於建立型模式,又叫做靜態工廠方法 static factory method 模式,但不屬於23種 gof設計模式之一。簡單工廠模式是由乙個工廠物件決定建立出哪一種產品類的例項。簡單工廠模式是工廠模式家族中最簡單實用的模式,可以理解為是不同工廠模式的乙個特殊實...