簡單工廠設計模式
1、簡單工廠設計模式
定義:乙個類中的乙個方法來負責建立其他類的例項,被建立的例項通常都具有共同的父類或介面。簡單抽象工廠模式又叫靜態工廠設計模式,屬於類的建立型模式,通常根據乙個條件(引數)來返回不同類的例項。
簡單工廠設計模式不能說是乙個設計模式。它不是23種gof設計模式之一。但它在實際的程式設計中經常被用到,思想也非常簡單,可以說是工廠設計模式的乙個引導。
2、簡單工廠設計模式uml圖
這裡以乙個簡單的計算器為例項,簡單工廠設計模式uml圖
3、思路:
(1)業務邏輯和介面相互分離,降低它們之間的耦合度,這樣才可以達到容易維護或擴充套件。
(2)遵循類設計的「單一職責」(即乙個類只完成乙個功能)。
4、步驟:
(1)抽象出乙個操作類即operator,該類具有具體功能類的方法。
(2)建立出4個add、sub、mul、div,讓其繼承operator類,覆蓋其父類方法getresult()。
(3)******factory類,構建乙個方法讓其判斷產生具體的那個功能類,讓父類指向其子類。
5、**
package designpattren;
/*** 被零除異常類,對被零除異常的宣告
* @author hjyang
* */
@suppresswarnings("serial")
class arithmeticexceptionbyzero extends runtimeexception
}abstract class operator
abstract public double getresult();
}class add extends operator
}class sub extends operator
}class mul extends operator
}class div extends operator
}catch(arithmeticexceptionbyzero e)
this.result = this.num1 / this.num2;
return result;}}
class operato***ctory
return opt;}}
public class singleresponsibility
}總結:
(1)以上**採用物件導向三特特性:封裝、繼承、多型機制,並且符合"單一職責"原則
(2)以上**首先是乙個運算類,它具有2個number屬性,主要用於計算前後數,result儲存運算結果,然後有乙個抽象方法getresult()用於得到結果,而加、減、乘、除都繼承類運算類operator,重寫了getresult()方法,這樣如果要修改任何乙個演算法,就不需要提供其他演算法的**了。
(3)簡單工廠設計模式的最大優點礙於工廠類中包含了必要的邏輯判斷,根據客戶端的選擇條件動態例項化相關的類,對於客戶端來說去除了對產品的依賴。但是如果需要新增乙個功能,如求n次冪,即必須給運算工廠類的方法switch語句,加上case分支,這就修改類原有的類,這樣不僅擴充套件開放,同時對修改也開放了,這就違背了」封閉-開發「原則。
設計模式 工廠模式(簡單工廠)
一 簡單工廠 定義 簡單工廠模式 factory pattern 屬於類的創新型模式,又叫靜態工廠方法模式 static factorymethod pattern 是通過專門定義乙個類來負責建立其他類的例項,被建立的例項通常都具有共同的父類。特點 工廠類直接實現,乙個產品介面,乙個工廠類可以產生多...
簡單工廠設計模式與工廠設計模式
工廠設計模式的目的 降低呼叫者和實現者之間的耦合度。當需求發生變化 增加或改變 時,不改變原有 的結構。1.簡單工廠設計模式 優點 降低了呼叫者和實現者之間的耦合度。當引入乙個新的實現型別時,只需要增加乙個實現類,然後修改工廠類即可。缺點 只適用於層次結構較為簡單的情況。如果可能的實現型別很多,工廠...
設計模式 簡單工廠設計模式
請用任意一種物件導向語言實現計算器控制台程式,要求輸入兩個數和運算符號,得到結果。operation運算類 public class operation set public double numberb set public virtual double getresult 加減乘除類 using...