您好,登錄后才能下訂單哦!
在java項目中實現工廠模式的方法?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
java 工廠模式的實例詳解
工廠方法中的“工廠”和我們平常理解的一樣:用于生產產品。
而客戶是要和產品打交道,所以工廠方法模式的意義在于把客戶和產品分開,達到解耦和更靈活的目的。
一般我們有一個產品的抽象類,然后有幾個具體的產品,如下:
//抽象產品角色 public interface Product{ void product(); } //具體產品1 public class Pro1 implements Product{ @Override public void product() { System.out.println("產品1"); } } //具體產品2 public class Pro2 implements Product{ @Override public void product() { System.out.println("產品2"); } }
接著客戶要購買產品,他不直接和產品接觸,而是使用工廠,所以我們有一個工廠:
public class Factory { public static Product buy(type) { switch (type) { case 1: return new Pro1(); case 2: return new Pro2(); default: break; } return null; } }
客戶通過Factory .buy(type);即可購買到自己想要的產品。
————— 這就是 簡單工廠模式,又稱為 靜態工廠方法模式。
如果新增了一款產品,我們多寫一個產品類Pro3就可以了,但在工廠上我們要添加新的代碼才能生產,這顯然不符合“開閉原則(對擴展開放;對修改封閉)”,所以我們把工廠抽象,添加具體的工廠類,由客戶選擇某一個工廠,如下:
//抽象工廠 public interface Factory { Product buy(); } //具體工廠1 public class Factory1 implements Factory { @Override public Product buy() { return new Pro1(); } } //具體工廠2 public class Factory2 implements Factory { @Override public Product buy() { return new Pro2(); } }
當新增了一款產品,我們多創建一個具體的工廠來生產就可以了。但是當產品種類非常多時,會出現大量的與之對應的工廠對象,這并不是我們所希望的。
——— 這就是 工廠方法模式
當產品出現多個抽象時,我們可能會有多個產品接口,這個場景就成了我們所說的
——- 抽象工廠模式
總結:
無論是簡單工廠模式,工廠方法模式,還是抽象工廠模式,他們都屬于工廠模式,在形式和特點上也是極為相似的,他們的最終目的都是為了解耦。在使用時,我們不必去在意這個模式到底工廠方法模式還是抽象工廠模式,因為他們之間的演變常常是令人琢磨不透的。經常你會發現,明明使用的工廠方法模式,當新需求來臨,稍加修改,加入了一個新方法后,由于類中的產品構成了不同等級結構中的產品族,它就變成抽象工廠模式了;而對于抽象工廠模式,當減少一個方法使的提供的產品不再構成產品族之后,它就演變成了工廠方法模式。 所以,在使用工廠模式時,只需要關心降低耦合度的目的是否達到了。
看完上述內容,你們掌握在java項目中實現工廠模式的方法的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。