與簡單工廠模式相比,工廠模式為每個類增加了乙個工廠類。每個工廠類返回它所對應的類的物件指標。
簡單工廠模式的最大優點:工廠類中包含了必要的邏輯判斷。根據客戶端的選擇條件動態的例項化相關的類。沒有在客戶端實現判斷,也就去除了與客戶端的依賴。
簡單工廠模式實現計算類結構圖:
工廠模式實現計算類結構圖:
工廠模式實現**:
#includeusing namespace std;
class operation
virtual double calculate()=0;
};class addoperation:public operation
virtual double calculate()
};class suboperation:public operation
virtual double calculate()
};class factory
virtual operation *createoperation()=0; };
class addfactory:public factory
virtual operation*createoperation()
};class subfactory:public factory
virtual operation*createoperation()
};int main(int argc,char**argv)
virtual void sweep()=0;
virtual void wash()=0;
virtual void buyrice()=0; };
class student:public leifeng
virtual void sweep()
工廠模式克服了簡單工廠模式違背開放封閉原則,保持了封裝物件建立過程的優點。要更換物件時不需要做大的改動即可實現,降低了客戶程式與產品物件的耦合度。 設計模式學習之工廠模式
工廠模式,factorymethod,定義乙個工廠類的基類,基類中不再去實現具體的產品類的例項,而是將產品類的例項化工作放在其子類中進行,然後由客戶端來決定要使用那一種產品類的例項,工廠模式也要求產品類都具有相同的產品基類,這和簡單工廠模式比較相似。個人理解 工廠模式和簡單模式最大的區別是將產品類的...
設計模式之工廠模式學習
與簡單工廠模式相比,工廠模式為每個類增加了乙個工廠類。每個工廠類返回它所對應的類的物件指標。簡單工廠模式的最大優點 工廠類中包含了必要的邏輯判斷。根據客戶端的選擇條件動態的例項化相關的類。沒有在客戶端實現判斷,也就去除了與客戶端的依賴。簡單工廠模式實現計算類結構圖 工廠模式實現計算類結構圖 工廠模式...
設計模式學習之工廠模式
前言 設計模式不是某個api,是一系列經驗總結後的開發模板。工廠模式的分類 工廠方法模式 定義了乙個用於建立方法的介面,讓子類決定例項化哪乙個類。抽象方法模式 定義一系列相關或者相互依賴的介面,無需指定具體的類。是方法模式的擴充套件。工廠模式的意義 需要大量建立某類具有相同屬性的物件時,將例項化的任...