一天乙個設計模式(二) 工廠方法模式

2021-09-14 05:26:56 字數 1025 閱讀 9379

工廠方法模式是對簡單工廠模式的一種改進。

下面先簡單介紹簡單工廠模式:

首先有乙個所有產品的父介面:

//產品介面

public inte***ce product

以及多個產品

//①

public class product1 implements product

}//②

public class product2 implements product

}

再設定乙個工廠類

public class factory else 

}}使用時通過工廠類的mekeproduct建立各產品:

public static void main(string args)

結果:i am product1

i am product2

簡單工廠模式使客戶可以不用自己建立類的例項,而是傳給工廠相應資訊讓工廠來建立。但是其缺點:若產品要修改則工廠類也要修改。

工廠方法模式則是:

設定乙個工廠介面,並有乙個建立產品的方法。

public inte***ce factory
再設定多個工廠,分別建立不同的產品(一一對應)

public class factory1 implements factory

}public class factory2 implements factory

}//使用時通過各自的工廠類來生成產品

public class test

}結果:

i am product1

i am product2

工廠方法模式和簡單工廠模式一樣使使用者不再關心產品類的實現,而直接通過工廠來建立產品實體。

但他也改進了簡單工廠模式的缺點,當增加產品時只需增加新的工廠類即可,降低了耦合度。但是當產品很多是,要建立大量的工程類,**量會增大。

每天乙個設計模式(二) 工廠方法模式

建立型模式中的工廠系列,有 簡單工廠模式 工廠方法模式 抽象工廠模式。工廠方法模式在簡單工廠模式上做進一步抽象,實現後的功能是這樣的 當你需要什麼,你就建立生產這個產品的工廠,並用它獲取你需要的物件,不用關注建立細節。場景變化 畫圖系統不再用同乙個工廠來統一負責所有圖形的建立,而是將具體圖形的建立過...

一天乙個設計模式 單例模式

1.餓漢模式public class sprivate static s s news public static s get 執行緒安全,載入時就初始化,根據需求來,此種用法最簡單2.懶漢模式public class sprivate static s s public static s get ...

一天乙個設計模式 建造者模式

這個模式和工廠模式很像,建造者 builder 模式和工廠模式的關注點不同 建造者模式注重零部件的組裝過程,而工廠方法模式更注重零部件的建立過程,但兩者可以結合使用。舉個栗子,stringbuilder public class abstractstringbuilder char c privat...