簡單工廠設計模式

2021-06-26 17:42:16 字數 1797 閱讀 5545

簡單工廠設計模式

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...