談 簡單工廠模式

2022-04-02 18:23:18 字數 1769 閱讀 6884

面試的時候被考到了 ,當時一下有點亂沒寫出來   回來查了一下資料從新整理了一下 ,希望對以後能夠以此為戒。

說到設計模式 在程式設計中平時很少用到 ,也是乙個比較抽象的概念 一時間不知道怎麼去理解,總結一下 學習乙個東西 一般 5 w 2 h    5個w: what   why  where  who  when  2h: how  how much

這裡常用的  what  : 什麼東西    where 在什麼地方用   when 什麼時候用   how 怎麼用

1  什麼是工廠模式 what :

從設計模式的型別上來說,簡單工廠模式是屬於建立型模式,又叫做靜態工廠方法(static factory method)模式,但不屬於23種gof設計模式之一。簡單工廠模式是由乙個工廠物件決定建立出哪一種產品類的例項。簡單工廠模式是工廠模式家族中最簡單實用的模式,可以理解為是不同工廠模式的乙個特殊實現。

簡單的說就是 有個乙個物件工廠 來決定 具體例項化哪個物件  

2. 在什麼時候會用到  when:

訪問資料庫的時候  不同的資料  access  sql sever  oracle   ,如果之前專案是 sql server  後來改成  access   那麼原來的專案改動就很大  ,需要重新寫所有的資料庫訪問的**,  很不方便, 那麼我們就可以用工廠類 來 返回制定資料庫操作物件,然後來進行多種 資料庫的操作 ,只需要修改配置就可以了

3.怎麼用  how:

引用 《大話設計模式》的例子    加 減 乘  除  運算 

//定義運算類

//

定義運算類

public

class

operation

set

}public

string

numberb

set

}public

virtual

double

doresult()

}

//定義不同符號的子類繼承

//

加法運算

public

class

addoperation : operation

}

減法運算類

//

減法運算類

public

class

suboperation : operation

}

乘法運算類

//

乘法運算類

public

class

muloperation : operation

}

除法運算

//

除法運算

public

class

devoperation:operation

}

工廠類

public

class

operationfactory

return

opr;}}

以後只要呼叫 operationfactory.getoperation(運算子)  就會得到 運算物件  ,這樣以後新增其他的預算也非常方便,新增一新的類,給getoperation 新增乙個 case 分支就可以了   呼叫 obj. doresult()  返回結果 就可以了,實現物件導向的,封裝和多型

工廠模式 簡單工廠

簡單工廠其實並不是乙個設計模式,反而比較像一種程式設計習慣。我個人的這樣總結簡單工廠 建立乙個類,封裝建立物件的 故事 現在我要開一家披薩店,叫bbk 必敗客 披薩,賣很多種披薩 芝士披薩 榴蓮披薩等等,我有乙個orderpizza string type 方法,根據客戶傳來的type來提供不同的披...

工廠模式 簡單工廠

工廠 處理建立物件的細節。目的 將例項化具體類的 從應用中抽離,或者封裝起來,可以避免干擾應用的其他部分。簡單工廠 簡單工廠其實不是乙個設計模式,反而像一種程式設計習慣。產品實現 desc 產品a public inte ce a class a1 implements a override pub...

簡單工廠模式,工廠模式,抽象工廠模式

三種模式看了一天,記錄下自己的理解 headfirst,比薩店為例 1,簡單工廠模式 乙個具體的工廠類 pizzafactory 乙個抽象的產品類pizza,可以派生出多個具體的產品類 客戶 pizzastore類 工廠類 pizzafactory類關聯產品類pizza,工廠生產出不同型別的pizz...