工廠模式及什麼時候用工廠模式

2021-05-25 06:38:42 字數 798 閱讀 8397

factory   method是一種建立性模式,它定義了乙個建立物件的介面,但是卻讓子類來決定具體例項化哪乙個類.當乙個類無法預料要建立哪種類的物件或是乙個類需要 由子類來指定建立的物件時我們就需要用到factory   method   模式了.簡單說來,factory   method可以根據不同的條件產生不同的例項,當然這些不同的例項通常是屬於相同的型別,具有共同的父類.factory   method把建立這些例項的具體過程封裝起來了,簡化了客戶端的應用,也改善了程式的擴充套件性,使得將來可以做最小的改動就可以加入新的待建立的類.   通常我們將factory   method作為一種標準的建立物件的方法,當發現需要更多的靈活性的時候,就開始考慮向其它建立型模式轉化

工廠模式,也叫做說虛構造器,在簡單工廠中間插入了乙個具體產品工廠,這個工廠知道產品構造時候的具體細節,而簡單工廠模式的產品具體構造細節是在乙個個 if/else分支,或者在switch/case分支裡面的。工廠模式的好處就在於將工廠和產品之間的耦合降低,將具體產品的構造過程放在了具體工廠類 裡面。在以後擴充套件產品的時候方便很多,只需要新增乙個工廠類,乙個產品類,就能方便的新增產品,而不需要修改原有的**。而在簡單工廠中,如果要增加乙個 產品,則需要修改工廠類,增加if/else分支,或者增加乙個case分支,工廠模式符合軟體開發中的ocp原則(open close principle),對擴充套件開放,對修改關閉。

工廠模式,實際上就是隱藏了實現的細節,使用者不用關心物件是怎麼建立出來的。

c:抽象工廠模式與工廠方法模式的最大區別就在於,工廠方法模式針對的是乙個產品(fruit)等級結構;而抽象工廠模式則需要面對多個產品等級結構(fruit、meat)。

什麼時候用工廠模式

有個疑問 工廠模式最終不也是new個物件出來麼?呼叫者直接用new好了,何必還要用工廠模式多此一舉呢?想了半天,查了些資料,弄出了點眉目。有時候,構造物件確實只要簡單的new就可以了,但另一些時候,構造物件的過程就比較複雜,比如要有很多條件判斷啊,引數選擇啊之類的,這時候把它們交給呼叫者去做就有些不...

為什麼使用工廠模式

非原創,只是搬運。位址 1.工廠模式並不僅僅是用來new出乙個類的物件的。簡單工廠確實如題主的描述所說,是乙個工廠對應乙個類的關係。假設有 包a和 包b,包b是 包a的呼叫者,a向b暴露介面inte cea。在a的內部結構中,實現了inte cea的有classa1,classa2,classa3,...

簡單工廠模式,工廠模式,抽象工廠模式

三種模式看了一天,記錄下自己的理解 headfirst,比薩店為例 1,簡單工廠模式 乙個具體的工廠類 pizzafactory 乙個抽象的產品類pizza,可以派生出多個具體的產品類 客戶 pizzastore類 工廠類 pizzafactory類關聯產品類pizza,工廠生產出不同型別的pizz...