定義:定義一個建立對象的接口,但讓實現這個接口的類來決定實例化哪一個類,工廠方法讓類的實例化推遲到了子類中進行,它屬於建立類型ide
通俗理解與作法: 定義一個抽象類或者接口來當規範工廠,它是一個只聲明方法叫什麼名字不實現方法的內容的一個規範類; 定義具體工廠實現或者繼承規範工廠,而後重寫規範工廠中定義的方法,在該方法中生產屬於本身工廠的對象 使用的時候,new工廠的時候是具體工廠給規範工廠進行賦值即=號左邊是規範工廠類型,右邊是具體工廠類型,想獲哪一個具體工廠生產的對象就使用哪一個具體工廠類型,最後利用對象調用方法來獲取具體工廠生產的 注意點: 要有一個規範工廠,該工廠只負責聲明方法叫什麼名字,不實現方法的內容 每個具體工廠都要繼承或者實現規範工廠,重寫它的方法,在方法中生產本身工廠的對象 使用的時候必定要具體工廠給規範工廠進行賦值
//StandardFactory----規範工廠 SpecificFactory----具體工廠 interface StandardFactory { public Product createProduct(); //聲明瞭方法叫這個名字 } class SpecificFactory implements StandardFactory { @Override public Product createProduct() { //具體工廠實現規範工廠並重寫它的方法生產屬於工廠的對象 return new Product(); //這是屬於該具體工廠生產的對象 } } public class Client { public static void main(String[] args) { StandardFactory factory = new SpecificFactory(); Product prodect = factory.createProduct(); } }
對於工廠方法模式來講就是子類重寫的方法生產對象不一樣從而達到獲取不一樣的對象
若是有什麼錯誤之處請指出,謝謝閱讀!