從零開始學習設計模式 簡單工廠模式

2021-07-15 11:21:22 字數 846 閱讀 3015

既然要寫關於設計模式的文章,當然是從最簡單的簡單工廠模式,或者說靜態工廠模式說起。一句話概括——簡單工廠模式其實就是根據不同的條件由工廠類去例項化不同的實現類,在使用的時候,並不需要去關心實現類的內部方法具體是怎麼實現的,只需要關心例項化了哪個類。

所以簡單來說,簡單工廠模式就是——對共性開放,對個性封閉。

我們來簡單舉個例子,假設我要做乙個加減乘除演算法,但是我並不關心演算法的內部是怎麼實現的,僅僅管關心自己實現的哪一種演算法,首先需要乙個被繼承的演算法類:

public abstract class operation
我在這兒直接就寫成抽象類了,以提醒子類必須重寫。

然後是加法類和減法類的具體實現:

public class operationadd  extends operation

}

public class operationsub extends operation 

}

是用來例項化這個加法或者減法的工廠類:

public class operationfactory 

return operation;

}}

最後就是使用啦:

public static void main(string args)
其實從這個例子就能看出來,靜態工廠的缺點還是很明顯的,那就是不符合「開放—閉合」模式,如果要新增或者刪除一種演算法,不但需要對演算法類進行操作,還需要對工廠類進行操作,但好處也是顯而易見的,就是將演算法結構給剝離了出來,將方法的具體實現和引用進行了剝離。

從零開始學習設計模式 策略模式

寫這個模式之前,實在是覺得策略模式和靜態工廠模式很像,無非就是從父類中抽象中公用的方法,然後在實體類中重寫具體的實現。但其實這兩者的區別還是有的,從關注的點來說,靜態工廠關注例項化的物件,而策略模式則更關注方法中不同的實現,先上 吧。抽象類和實現的實體,與靜態工廠一樣。抽象類 abstract cl...

從零開始最簡單Qt C 設計模式總結五 橋接模式

橋接模式類似於抽象工廠模式。抽象工廠將不同工廠生產的不同產品分離開來,這樣,在使用某些特定產品時新建乙個工廠即可,也可以很方便地對不同的產品進行修改,實現抽象與實現分離,即每個工廠的抽象與具體生產的產品細節分離。橋接模式則相當於為每一種工廠的子類引入抽象的產品物件成員,使得每乙個新建的工廠都能生產所...

設計模式 工廠模式(簡單工廠模式和方法工廠模式)

一 簡單工廠模式 簡單工廠模式概述 又叫靜態工廠方法模式,它定義乙個具體的工廠類負責建立一些類的例項 優點 客戶端不需要在負責物件的建立,從而明確了各個類的職責 缺點 這個靜態工廠類負責所有物件的建立,如果有新的物件增加,或者某些物件的建立方式不同,就需要不斷的修改工廠類,不利於後期的維護 動物類 ...