簡單工廠設計模式
剛開始學設計模式,猶如剛睜開眼看世界的孩子,滿眼都是驚奇,原來**的世界可以如此的精彩紛呈.當然這些都是前輩智慧型的結晶.簡單工廠設計模式是接觸的第乙個設計模式,看完後更多的是不懂和迷糊.不過相信慢慢會懂得其精髓的.
簡單工廠設計模式是建立型(就是把物件的建立和使用分離)模型,又叫靜態工廠方法(staticfactorymethod)模式.但不屬於23種gof設計模式之一。簡單工廠模式是由乙個工廠物件決定建立出哪一種產品類的例項。簡言之簡單工廠模式的本質就是選擇實現,重點在於選擇,因為實現類已經寫好了.其目的在於為客戶端來選擇相應的實現,從而使得客戶端和實現之間降低耦合,這樣一來,具體實現發生了變化,就不用變動客戶端了,這個變化會被簡單工廠模式遮蔽掉.
也因此當我們想要完全封裝隔離具體實現,讓外部只能通過介面來操作封裝體,那麼可以選用簡單工廠,讓客戶端通過工廠來獲取相應的介面,而無需關心具體實現.如圖我們如果想實現乙個簡單的計算器.
**如下
//首先定義運算類 public class operation
set}
public double numberb
set}
public virtual double getresult()
}//定義加法類,繼承了運算類
class operationplus : operation
}//定義減法類,繼承了運算類
class operationminus : operation
}//定義了乘法類,繼承了運算類
class operationmul : operation
}//定義了減法類,繼承了運算類
class operationdiv : operation
}//建立工廠
public class operationfactory
return oper;}}
//工廠對類例項化的**範例如下
static void main(string args)
簡單工廠雖然很簡單,但是非常友好的幫助我們實現了元件的封裝,然後讓元件外部能真正面向介面程式設計。通過簡單工廠,實現了客戶端和具體實現類的分離。如同上面的例子,客戶端根本就不知道具體是由誰來實現,也不知道具體是如何實現的,客戶端只是通過工廠獲取它需要的介面物件。
簡單工廠模式優點是有很多可是簡單工廠模式也並不完美,也有很多的缺點,如果通過客戶端的引數來選擇具體的實現類,那麼就必須讓客戶端能理解各個引數所代表的具體功能和含義,這會增加客戶端使用的難度,也部分暴露了內部實現.並且不方便擴充套件子工廠.
總結(1)簡單工廠模式是專門定義乙個類來建立其他類的例項,被建立的例項通常都有公共的父類。
(2)簡單工廠模式又稱為靜態工廠方法,屬於類的建立型模式,通常他根據自變數的不同返回不同類的例項。
(3)實質:由乙個工廠類根據傳入的變數,動態的決定建立出哪乙個產品類的例項。
設計模式 工廠模式(簡單工廠)
一 簡單工廠 定義 簡單工廠模式 factory pattern 屬於類的創新型模式,又叫靜態工廠方法模式 static factorymethod pattern 是通過專門定義乙個類來負責建立其他類的例項,被建立的例項通常都具有共同的父類。特點 工廠類直接實現,乙個產品介面,乙個工廠類可以產生多...
簡單工廠設計模式與工廠設計模式
工廠設計模式的目的 降低呼叫者和實現者之間的耦合度。當需求發生變化 增加或改變 時,不改變原有 的結構。1.簡單工廠設計模式 優點 降低了呼叫者和實現者之間的耦合度。當引入乙個新的實現型別時,只需要增加乙個實現類,然後修改工廠類即可。缺點 只適用於層次結構較為簡單的情況。如果可能的實現型別很多,工廠...
設計模式 簡單工廠設計模式
請用任意一種物件導向語言實現計算器控制台程式,要求輸入兩個數和運算符號,得到結果。operation運算類 public class operation set public double numberb set public virtual double getresult 加減乘除類 using...