設計模式既上一篇關於單例模式後,終於要接著寫下去了,先來個最簡單的,簡單工廠模式,這個設計模式很簡單,也是最常用的(是不是好多東西都這樣,越簡單,門檻越低,越討人喜歡)。
概念(原諒我無恥的抄百度百科):
簡單工廠模式是屬於創建型模式,又叫做靜態工廠方法(Static Factory Method)模式,但不屬於23種GOF設計模式之一。簡單工廠模式是由一個工廠物件決定建立出哪一種產品類別的實例。簡單工廠模式是工廠模式家族中最簡單實用的模式,可以理解為是不同工廠模式的一個特殊實現。
這裡所說的很清楚,一個工廠N多對象,這就是簡單工廠的實質,具體的UML類別圖如下
#
先安利下processon這個在線的工具, 這是我的邀請鏈接,當然你如果需要畫很多圖,請花錢支持他們。
來解釋下這個類圖,三部分組成,一是Creator,是工廠類,二是IProduct接口,三是具體的產品A和B。
具體的程式碼如下
#產品介面:
public interface IProduct {void meathod(); }
特定產品:
public class ProductA implements IProduct {public void meathod() { System.out.printf("产品A"); } }
public class ProductB implements IProduct {public void meathod() { System.out.printf("产品B"); } }
工廠:
public class Creator {public static IProduct createProduct(String productName) {if (null == productName) {return null; } else if ("A".equals(productName)) {return new ProductA(); } else if ("B".equals(productName)) {return new ProductB(); }return null; }public static void main(String[] args) { IProduct productA = Creator.createProduct("A"); productA.meathod(); IProduct productB = Creator.createProduct("B"); productB.meathod(); } }
#輸出: 產品A產品B
特定實例:
這樣簡單的模式是比較常用的,拿我們的專案來說,我們做的產品採用多個合作方的各種接口,其中大部分接口都是相同的只是再具體的字段和細節不一樣而已,例如去申請授信都是一些個人隱私信息,各家要的大體相同,只是個別的信息不同而已,這樣就很適合工廠模式。
優缺點:
優點:解耦,幫助封裝。
缺點:增加客戶端複雜度,不利於擴充子工廠
#其實簡單工廠模式的本質就是選擇實作。
這個簡單的就說這和麼多吧。
以上是設計模式之簡單工廠的詳細內容。更多資訊請關注PHP中文網其他相關文章!