Java設計模式--工廠模式
一、工廠模式的目的
為建立物件提供過度介面,以便將建立物件的具體過程遮蔽隔離起來,達到提高靈活性的目的
二、優缺點
優點:工廠類是整個模式的關鍵所在,無需瞭解物件是如何建立以及如何組織的,有利於整個軟體體系結構的最佳化。
缺點:由於工廠類集中了所有例項的建立邏輯,這就直接導致一旦這個工廠出了問題,所有的客戶端都會受到牽連,違背了單一職責
三、具體實現
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
//細節:命名規則類,介面名稱都得大寫 interface Fruit { //介面中的 public abstract 都是多餘的宣告,eclipse是發現不了的。 //若是有心人就換編輯器,intellij idea, void eat(); }
class Apple implements Fruit { public void eat() { System.out.println("Apple"); } }
class Orange implements Fruit { public void eat() { System.out.println("Orange"); } }
// 構造工廠類 // 也就是說以後如果我們在新增其他的例項的時候只需要修改工廠類就行了 class Factory { public static Fruit getInstance(String fruitName) { Fruit f = null; if ("Apple".equals(fruitName)) {//這麼寫是為了避免null.equal(),空指標異常,有人會問這個為什麼嗎? f = new Apple(); } if ("Orange".equals(fruitName)) { f = new Orange(); } return f; } }
class Hello { public static void main(String[] a) { Fruit f = Factory.getInstance("Orange"); f.eat(); } } |
四、總結
簡單工廠模式分離產品的建立者和消費者,有利於軟體系統結構的最佳化;但是由於一切邏輯都集中在一個工廠類中,導致了沒有很高的內聚性,同時也違背了“開放封閉原則”。另外,簡單工廠模式的方法一般都是靜態的,而靜態工廠方法是無法讓子類繼承的,因此,簡單工廠模式無法形成基於基類的繼承樹結構。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4328/viewspace-2812491/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Java設計模式-工廠模式Java設計模式
- java設計模式 – 工廠模式Java設計模式
- Java設計模式(工廠模式)Java設計模式
- Java 設計模式(工廠模式)Java設計模式
- Java設計模式-抽象工廠模式Java設計模式抽象
- java設計模式-工廠方法模式Java設計模式
- Java設計模式之工廠模式Java設計模式
- java設計模式–抽象工廠模式Java設計模式抽象
- Java 設計模式之工廠方法模式與抽象工廠模式Java設計模式抽象
- Java設計模式之(二)——工廠模式Java設計模式
- Java設計模式(二):工廠方法模式Java設計模式
- java設計模式-簡單工廠模式Java設計模式
- Java設計模式之工廠方法模式Java設計模式
- Java設計模式模式 (包括工廠模式xml解析)Java設計模式XML
- 設計模式-工廠模式二(工廠方法模式)設計模式
- JAVA設計模式 3【建立型】理解工廠模式與抽象工廠模式Java設計模式抽象
- Java設計模式學習筆記——工廠模式與抽象工廠模式Java設計模式筆記抽象
- 設計模式----工廠模式設計模式
- 【設計模式】工廠模式設計模式
- 設計模式-工廠模式設計模式
- 設計模式 —— 工廠模式設計模式
- 設計模式(工廠模式)設計模式
- 3.java設計模式之工廠模式Java設計模式
- 淺識JAVA設計模式——工廠模式(一)Java設計模式
- Java常用設計模式之工廠方法模式Java設計模式
- Java常用設計模式之抽象工廠模式Java設計模式抽象
- 設計模式----工廠設計模式設計模式
- 設計模式-工廠設計模式設計模式
- 設計模式-簡單工廠、工廠方法模式、抽象工廠模式設計模式抽象
- C# 設計模式(1)——簡單工廠模式、工廠模式、抽象工廠模式C#設計模式抽象
- java23種設計模式——三、工廠模式Java設計模式
- Java常用設計模式之簡單工廠模式Java設計模式
- 設計模式學習(二)工廠模式——抽象工廠模式設計模式抽象
- 設計模式之工廠模式!深入解析簡單工廠模式,工廠方法模式和抽象工廠模式設計模式抽象
- 【設計模式】工廠方法模式設計模式
- 設計模式-工廠方法模式設計模式
- 設計模式之【工廠模式】設計模式
- 設計模式 #2 (工廠模式)設計模式