為什麼要用設計模式?
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設計模式之一。簡單工廠模式是由乙個工廠物件決定建立出哪一種產品類的例項。簡單工廠模式是工廠模式家族中最簡單實用的模式,可以理解為是不同工廠模式的乙個特殊實...