工廠方法模式uml類圖如圖所示:
說明:具體產品繼承抽象產品,具體工廠繼承抽象工廠,具體工廠依賴具體產品。
具體例項**如下所示(其實是在簡單工廠模式例項**的基礎上對工廠類進行了一下抽象):
抽象工廠類:
public abstract class abstractfactory
具體產品a工廠類:
ublic class productafactory extends abstractfactory
}
具體產品b工廠類:
public class productbfactory extends abstractfactory
}
抽象產品類:
public abstract class product
//定義抽象方法
public abstract void diffmethod();
}
具體產品類a:
public class producta extends product
}
具體產品類b:
public class productb extends product
}
main類:
public class main
}
說明,main類主方法利用反射技術從配置檔案讀取資訊,生成工廠例項。
工廠方法模式說明:
工廠方法模式面向抽象的工廠類進行程式設計,將具體產品類的例項化延遲到工廠子類中完成,如果想修改生產的產品,修改配置檔案中的具體工廠配置就可以,此模式,乙個具體工廠類對應乙個具體產品,如果生產新的產品c的話,完全不用修改源**,只要新增乙個productcfactory類和乙個productc類就行,修改一下配置檔案中的具體工廠類配置,就可以生產c產品。
該模式中屬於執行期才確定new哪個物件,所以使用反射技術生成工廠類很容易達到目的。
該模式有乙個缺點就是,如果擴充套件產品的話,還要擴充套件乙個相對應的具體產品工廠,類的個數成對增加。
如有問題,歡迎指正
end
設計模式 1 工廠方法模式
簡單工廠模式有個問題是,類的建立是需要依賴工廠類的,如果要拓展程式,那麼需要對工廠類進行修改,這個增加了風險。工廠方法模式可以避免這種情況,方法建立乙個工廠介面和建立多個工廠類,理解如下 對了抽象方法a,b和c分別為其的兩個不同實現,現在建立工廠介面d,工廠介面d的實列類e和f分別對b和c進行實列化...
設計模式1 工廠方法模式
關於工廠的設計模式,我們可以列出來這三個,既然是都和工廠有關,當然就少不了他們的比較,這裡簡單說下,在比較中理解以便更好的學習。本篇著重講工廠方法模式。簡單工廠模式不屬於23種經典設計模式的一種,是乙個專門生產某個產品的類,例如 乙個鍵盤工廠,不管生產什麼牌子的鍵盤,就只能生產鍵盤,對鍵盤的邏輯操作...
設計模式 1 工廠方法模式
建立型模式可以隔離客戶程式對需要例項化型別的依賴關係,這類模式一般通過將例項化具體物件的職責委託給第三方物件的方式,使得客戶程式或者外部系統在獲得所需的具體型別例項的同時,而不必對其發生直接的引用。建立型模式包括 按照大多數設計模式書籍採用的順序,首先從工廠方法模式開始。簡單工廠模式並沒有被歸入23...