工廠方法模式是對簡單工廠模式的一種改進。
下面先簡單介紹簡單工廠模式:
首先有乙個所有產品的父介面:
//產品介面
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...