設計模式之工廠模式

2022-02-28 02:36:38 字數 1556 閱讀 2821

您是否已經掌握了物件導向的程式設計了?您是否已經理解了多型、封裝、繼承了?您是否覺得您寫的**已經非常便於維護了,有很強的擴充套件性,重複性了?如果不是,請多學習設計模式吧。

本章僅侷限在工廠模式的簡單使用。

什麼是工廠模式?

乙個單獨的類用來創造例項的過程,就是工廠模式。

為什麼要用到工廠模式?

程式設計不能滿足於寫完**執行結果正確就完事,時常考慮如何讓**更加簡練,更加容易維護,容易擴充套件和復用,努力做到寫出優雅的**。

下面舉乙個使用簡單工廠模式的小例子

在這裡我們嘗試開發乙個簡單計算機。為了使程式低耦合,我們應該盡量使業務邏輯層跟ui展現層分開。

首先先設計操作符類:

code

1public

class

operation29

set10}11

12public

double

numberb

1315

set16}17

18public

virtual

double

getresult()

1923

}這時候我們利用多型和繼承,編寫加、減、乘、除法操作符類。當然以後根據需求還可以新增更多操作符類。(可擴充套件)

code

1class

operationadd : operation29

}1011class

operationsub : operation

1219}20

21class

operationmul : operation

2229}30

31class

operationdiv : operation

3241

}好了,現在我們需要考慮乙個問題,我們如何讓計算機知道我是希望呼叫哪乙個演算法呢?

對,使用工廠模式,要例項化誰,將來會不會增加例項化的物件,比如增加開根運算,這是很容易變化的地方,應該考慮用乙個單獨的類來做這個

創造例項的過程,這就是工廠。來,我們看下面的**。

code

public

static

operation createoperate(

string

operate)

return

oper;

}工廠模式就是例項化出合適的物件,通過多型返回父類的方式實現了呼叫任何乙個演算法的方法。

最後實現顯示計算器的**,當然這些**可以重複用在web應用、windows應用、pda、嵌入式等其它方便。(重複性)

code

static

void

main(

string

args)

catch

(exception ex)

}這樣乙個簡單的計算器就完成了,以後不管需求怎麼改變,我們只需要更改增加各種複雜的運算類,在工廠新增要生產的分支就可以了。(重複性)

當然顯示介面怎麼改變都是可以的,跟業務邏輯不發生任何關聯。

設計模式 設計模式之工廠模式

工廠方法模式 建立模式 使用場景?作用?形態?場景 大量類似的實體類 要建立的實體類都是同一本質的東西 披薩 有部分類似功能 準備 烘烤 切法 實現方式不一樣 準備的材料不同 烘烤時間不同 切法不同 將繁瑣複雜的建立類的過程聚集在一起,有序清晰 把具體例項化的過程從客戶 中抽離 作用 1 將建立物件...

c 設計模式 之 工廠模式之 工廠模式

1 uml類圖 實現和依賴關係 實現 sportfactory jeepfactory hatchbackfactory 實現 ifactory 介面 sportcar jeepcar hatchbackcar 實現 icar 介面 依賴 ifactory 依賴 icar sportfactory ...

設計模式 工廠模式之簡單工廠模式

定義 由乙個工廠物件 工廠類 來指定建立某乙個產品類的例項。使用場景 客戶端只需傳入指定的引數即可,工廠類負責建立的物件較少 因為指定了傳入的引數 介面類 本想用iphone命名的,見諒 public inte ce phone實現介面類 public class huaweiphone imple...