當使用new建立物件的時候,總是會例項化乙個具體類,這樣就不是針對介面程式設計,並且當一段**中有大量的例項化活動,就應該考慮對擴充套件開放,對修改關閉,就是將其中變化的部分封裝提取,也就是封裝建立物件的**,生成乙個新的物件,也就是工廠物件,這樣就得到了乙個簡單工廠。簡單工廠並不能稱之為一種模式,更像是乙個程式設計習慣。
所有的工廠模式都是用來封裝物件的建立。工廠方法模式通過讓子類決定建立的物件是什麼,來達到將物件建立的過程封裝的目的。其實就是把工廠物件放到父類的乙個抽象方法中,子類實現這個工廠方法,用來建立物件。工廠方法模式定義了乙個建立物件的介面,但由子類決定要例項化的類是哪乙個。工廠方法讓類把例項化推遲到子類。
抽象工廠模式提供乙個介面,用於建立相關或依賴物件的家族,而不需要明確指定具體類。抽象工廠的每個方法其實可以看作工廠方法,每個方法都是抽象的,子類實現這個方法建立物件,或者說抽象工廠定義了乙個負責建立一組產品的介面,這個介面內的每個方法都負責建立乙個具體產品,而這些方法的實現都在抽象工廠的子類中來做。
設計模式 工廠模式 抽象工廠模式
建立物件時不會對客戶暴露建立邏輯,並且通過使用乙個共同的介面來指向建立的物件。sept1 建立乙個公共介面,將要對外開放的方法在這裡定義。sept2 建立實現介面的類,用即實現對外開放的類的方法 sept3 建立工廠,提供乙個get方法,這個方法提供返回實現類的物件 建立選擇 sept4 使用,建立...
設計模式 工廠設計模式
用於建立物件的介面,交給子類去實現 我們舉乙個生產nokia的例子 public abstract class nokiaphone先試定義了乙個抽象類,抽象出方法poweronphone 模擬手機開機的動作 public class nokia5200 extends nokiaphone pub...
設計模式 工廠設計模式
工廠模式分為工廠方法模式和抽象工廠模式 工廠方法模式分為 普通工廠模式,就是建立乙個工廠類,對實現了同一介面的一些類進行例項的建立。多個工廠方法模式,是對普通工廠方法模式的改進,在普通工廠方法模式中,如果傳遞的字串出錯,則不能正確建立物件,而多個工廠方法模式是提供多個工廠方法,分別建立物件。靜態工廠...