c 設計模式之工廠方法模式

2021-07-24 08:36:30 字數 584 閱讀 1026

工廠方法模式: 

define an inte***ce for creating an object, but let subclassed decide which class to instantiate. factory method lets a class defer instantiation to subclassed.(定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類。工廠方法使乙個類的例項化延遲到其子類。)

工廠模式專門負責將大量有共同介面的類例項化。工廠模式可以動態決定將哪乙個類例項化,不必事先知道每次要例項化哪乙個類。工廠模式有以下幾種形態:

談工廠方法模式先要談簡單工廠模式的缺點,簡單工廠的原理是把產品從邏輯上抽離出來,然後將對所有產品的邏輯操作放在乙個工廠來處理。那麼這樣做造成的問題是增加產品必須修改工廠,而工廠方法模式則是增加產品的同時增加對應的工廠,這樣就可以把增加產品的邏輯從單一工廠裡面分離了出來,符合設計中開閉的原則。

抽象來說,簡單工廠是在乙個類裡面處理所有的產品邏輯,工廠方法是乙個類處理一條產品邏輯。表面上來看工廠方法似乎饒了一些路來處理事情,但是當類和對應的產品邏輯比較複雜或者變化會比較大的時候,這樣做會將不同的邏輯處理的更有條理一些。

工廠方法模式 C 設計模式之1 工廠方法模式

工廠方法模式屬於建立型模式,定義乙個建立物件的介面,讓其子類自己決定例項化哪乙個工廠類,工廠模式使其建立過程延遲到子類進行。它提供了一種建立物件的最佳方式。在工廠模式中,我們在建立物件時不會對客戶端暴露建立邏輯,僅僅是通過使用乙個共同的介面來指向新建立的物件。1 抽象工廠 creator 是工廠方法...

C 設計模式之工廠方法模式

問題描述 之前講到了c 設計模式 簡單工廠模式,由於簡單工廠模式的侷限性,比如 工廠現在能生產producta productb和productc三種產品了,此時,需要增加生產productd產品 那麼,首先是不是需要在產品列舉型別中新增新的產品型別標識,然後,修改factory類中的switch結...

C 設計模式之工廠方法模式

問題描述 之前講到了c 設計模式 簡單工廠模式,由於簡單工廠模式的侷限性,比如 工廠現在能生產producta productb和productc三種產品了,此時,需要增加生產productd產品 那麼,首先是不是需要在產品列舉型別中新增新的產品型別標識,然後,修改factory類中的switch結...