面試的時候被考到了 ,當時一下有點亂沒寫出來 回來查了一下資料從新整理了一下 ,希望對以後能夠以此為戒。
說到設計模式 在程式設計中平時很少用到 ,也是乙個比較抽象的概念 一時間不知道怎麼去理解,總結一下 學習乙個東西 一般 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以後只要呼叫 operationfactory.getoperation(運算子) 就會得到 運算物件 ,這樣以後新增其他的預算也非常方便,新增一新的類,給getoperation 新增乙個 case 分支就可以了 呼叫 obj. doresult() 返回結果 就可以了,實現物件導向的,封裝和多型class
operationfactory
return
opr;}}
工廠模式 簡單工廠
簡單工廠其實並不是乙個設計模式,反而比較像一種程式設計習慣。我個人的這樣總結簡單工廠 建立乙個類,封裝建立物件的 故事 現在我要開一家披薩店,叫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...