設計模式 工廠模式

2021-08-21 03:38:48 字數 1088 閱讀 9547

工廠模式:

實現了建立者和呼叫者的分離

詳細分類:

簡單工廠模式

工廠方法模式

抽象工廠模式

物件導向設計的基本原則:

ocp(開閉原則,open-closed principle):乙個軟體的實體應當對擴充套件開發,對修改關閉

dip(依賴倒轉原則,dependence inversion principle):要針對介面程式設計,不要針對實現程式設計

lod(迪公尺特法則,law of demeter):只與你直接的朋友通訊,而避免與陌生人通訊

簡單工廠模式:

簡單工廠模式也叫靜態工廠模式,就是工廠類一般是使用靜態方法,通過接受的引數不同來返回不同的物件例項

缺點:對於增加新產品無能為力!不修改**的話,是無法擴充套件的 

public inte***ce car

public class baoma implements car

public class ******factory

public static void createbaoma() 

public class client

工廠方法模式

為了避免簡單工廠模式的缺點,不完全滿足ocp

工廠方法模式和簡單方法模式最大的區別就是,簡單工廠模式只有乙個工廠類,而工廠方法模式有一組實現了相同介面的工廠類

工廠方法模式將上述的******factory 類變為乙個介面,定義乙個建立car的抽象方法,然後由具體的品牌車趨去實現這個介面,重寫這個方法,去建立car,這樣做方便擴充套件,擴充套件不用修改原來的工廠類,只需要實現介面即可

兩者的比較

結構複雜度:

簡單工廠佔優勢,簡單工廠模式只需要乙個工廠類,而工廠方法模式的工廠l類隨著產品數量的增加而增加,無疑使類的個數越來越多,增加了結構複雜度

**複雜度:

**複雜度和結構複雜度是一對矛盾,所以簡單工廠類的的**複雜度大於工廠方法模式

客戶端程式設計難度:

工廠方法模式在客戶端需要對工廠類進行例項化,而簡單工廠模式的工廠類是乙個靜態類,直接呼叫靜態方法即可,所以簡單工廠模式略勝一籌

管理上的難度:

實際上,我們一般都用簡單工廠模式

設計模式 工廠模式 抽象工廠模式

建立物件時不會對客戶暴露建立邏輯,並且通過使用乙個共同的介面來指向建立的物件。sept1 建立乙個公共介面,將要對外開放的方法在這裡定義。sept2 建立實現介面的類,用即實現對外開放的類的方法 sept3 建立工廠,提供乙個get方法,這個方法提供返回實現類的物件 建立選擇 sept4 使用,建立...

設計模式 工廠設計模式

用於建立物件的介面,交給子類去實現 我們舉乙個生產nokia的例子 public abstract class nokiaphone先試定義了乙個抽象類,抽象出方法poweronphone 模擬手機開機的動作 public class nokia5200 extends nokiaphone pub...

設計模式 工廠設計模式

工廠模式分為工廠方法模式和抽象工廠模式 工廠方法模式分為 普通工廠模式,就是建立乙個工廠類,對實現了同一介面的一些類進行例項的建立。多個工廠方法模式,是對普通工廠方法模式的改進,在普通工廠方法模式中,如果傳遞的字串出錯,則不能正確建立物件,而多個工廠方法模式是提供多個工廠方法,分別建立物件。靜態工廠...