簡單工廠模式--不是gof的23個的模式
前言:來自《head first 設計模式》,不涉及任何商務往來,僅為學習使用,作為參照筆記。簡單工廠模式其實不是設計模式,反而是比較像是一種程式設計習慣。簡單工廠模式是由乙個工廠物件決定建立出哪一種產品類的例項。簡單工廠模式是工廠模式家族中最簡單實用的模式,可以理解為是不同工廠模式的乙個特殊實現。
簡單工廠模式類圖
產品分很多態別。
製作乙個產品。
一、 工廠模式有了簡單工廠模式,工廠方法模式和抽象工廠模式。
解決某些松耦合的oo設計。
除了使用new操作符之外,還有更多製造物件的方法。
目的為了避免公開例項化。
經驗:初始化經常造成「耦合」問題。
二、 思考:關於new的問題。每次使用new時,就是針對實現程式設計,如何避免這種針對實現程式設計?
前提明白,**綁著具體類會導致**更脆弱,更缺乏彈性。
模式目的:(1)要使用介面讓**具有彈性。
(2)但是還是的建立具體類的例項。
對修改關閉,對擴充套件開放。
三、 把變化的**搬到另乙個物件中,我們稱這個新物件為「工廠」。注意是物件。工廠(factory)處理建立物件的細節。
優勢:工廠類可以有許多客戶。
四、 問題:把工廠定義成乙個靜態方法的必要?
簡單工廠模式是屬於建立型模式,又叫做靜態工廠方法。利用靜態方法定義乙個簡單的工廠,常備稱為靜態工廠。為何使用靜態方法?因為不需要使用建立物件的方法來例項化物件。
但有缺點:不能通過繼承來改變建立方法的行為。
正如前言:簡單工廠其實不是乙個設計模式,反而比較像是一種程式設計習慣。有些程式設計人員習慣誤認為是「工廠模式」。
設計模式GOF23 工廠模式
簡單工廠模式 static factory method 是建立者模式的一種,是負責建立物件的模式。工廠模式是為了實現建立物件和呼叫物件分離的需求。簡單工廠用來生產同一等級結構中的任意產品。對於新增的產品需要修改已有 工廠方法模式用來生產同意等級結構中的固定產品。支援增加任意產品 抽象工廠模式用來生...
設計模式GOF23 抽象工廠模式
抽象工廠模式 abstract factory 是建立者模式的一種,是一種負責建立物件的模式。抽象工廠算是工廠模式的一種,因為邏輯和實現相對複雜一些,所以在設計模式中不少說明都是分開說明的。抽象工廠也是為了實現物件建立和物件使用的分離。工廠模式雖然已經實現了這一需求,但是還是不夠徹底。比如 如果建立...
GOF23 設計模式 之工廠模式
工廠模式本質 例項化物件,工廠方法代替new操作 將實現類和建立物件統一管理和控制,將呼叫者和實現類解耦 工廠模式分為了三種 1,簡單工廠模式 最常用 對於新增產品 要修改 2,工廠方法模式 新增產品不用修改 複雜度高 3,抽象工廠模式 可以增加產品族,進行產品之間的搭配 一般用的少,框架可能會用到...