spring中的beanfactory就是工廠模式
簡單工廠模式是指乙個工廠物件決定建立出哪一種產品類的例項。實現乙個類,類裡面有乙個方法,更加傳入的引數,建立物件。客戶端只需要傳入工廠類引數,對如何建立類不關心。
下圖就是乙個簡單工廠的例項
calendar.getinstance就是乙個簡單工廠模式
缺點:工廠類的職責相對過重,不易於擴充套件過於複雜的產品結構。
工廠方法模式是指定義乙個建立物件的介面,但讓實現這個介面的類覺定例項化哪個類,工廠方法讓類的例項化放到子類中進行。在工廠方法模式中使用者只需要關係所需產品對應的工廠,無需關注建立細節,而且加入的新的產品符合開閉原則。
簡單類圖
logback中工廠方法模式的應用
適用場景:乙個類通過其子類來指定建立哪個物件。
缺點:1.類的個數容易過多,增加複雜度
2.增加了系統的抽象性和理解難度
抽象工廠模式是指提供乙個建立一系列相關或相互依賴物件的介面,無須指定他們的具體的類。強調的是一系列相關的產品物件(同一產品族)。
舉例:如果乙個有n個品牌,任何乙個品牌都可以生產a,b,c,d多個型別的產品。這個時候我們可以這樣定義實體,a,b,c,d型別都定義乙個介面或者超級類,然後每乙個品牌對應實現a,b,c,d型別的類。這個時候就可以使用抽象工廠模式了,定義乙個抽象工廠類介面,可以生產a,b,c,d型別的產品,這個介面和品牌無關,然後每乙個品牌都定義乙個工廠實現這個抽象工廠類介面,生產對應產品的a,b,c,d型別物件。
設計模式 工廠模式 抽象工廠模式
建立物件時不會對客戶暴露建立邏輯,並且通過使用乙個共同的介面來指向建立的物件。sept1 建立乙個公共介面,將要對外開放的方法在這裡定義。sept2 建立實現介面的類,用即實現對外開放的類的方法 sept3 建立工廠,提供乙個get方法,這個方法提供返回實現類的物件 建立選擇 sept4 使用,建立...
設計模式 工廠設計模式
用於建立物件的介面,交給子類去實現 我們舉乙個生產nokia的例子 public abstract class nokiaphone先試定義了乙個抽象類,抽象出方法poweronphone 模擬手機開機的動作 public class nokia5200 extends nokiaphone pub...
設計模式 工廠設計模式
工廠模式分為工廠方法模式和抽象工廠模式 工廠方法模式分為 普通工廠模式,就是建立乙個工廠類,對實現了同一介面的一些類進行例項的建立。多個工廠方法模式,是對普通工廠方法模式的改進,在普通工廠方法模式中,如果傳遞的字串出錯,則不能正確建立物件,而多個工廠方法模式是提供多個工廠方法,分別建立物件。靜態工廠...