[设计模式]工厂方法模式
生活随笔
收集整理的這篇文章主要介紹了
[设计模式]工厂方法模式
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
工廠方法模式缺點(diǎn):
1.類(lèi)的個(gè)數(shù)成倍增加,導(dǎo)致類(lèi)越來(lái)越多,增加維護(hù)成本。
2.增加了系統(tǒng)的抽象性和理解難度。
(判斷生產(chǎn)什么,又變成讓客戶(hù)端來(lái)判斷了,簡(jiǎn)單工廠模式是由工廠判斷)
工廠方法模式優(yōu)點(diǎn):
1.符合開(kāi)閉原則。
簡(jiǎn)單工廠模式+“開(kāi)閉原則” = 工廠方法模式
代碼如下:
#include <iostream> using namespace std;class AbstractFruit { public:virtual void showName() = 0; };class Apple :public AbstractFruit { public:virtual void showName(){cout << "我是蘋(píng)果" << endl;} };class Banana :public AbstractFruit { public:virtual void showName(){cout << "我是香蕉" << endl;} };class Pear :public AbstractFruit { public:virtual void showName(){cout << "我是梨子" << endl;} };//抽象工廠 class AbstractFruitFactor { public:virtual AbstractFruit *CreateFruit() = 0; };class AppleFactor : public AbstractFruitFactor { public:virtual AbstractFruit *CreateFruit(){return new Apple;} };class BananaFactor : public AbstractFruitFactor { public:virtual AbstractFruit *CreateFruit(){return new Banana;} };class PearFactor : public AbstractFruitFactor { public:virtual AbstractFruit *CreateFruit(){return new Pear;} };void test01() {AbstractFruitFactor *factor = nullptr;AbstractFruit *fruit = nullptr;factor = new AppleFactor;fruit = factor->CreateFruit();fruit->showName();delete fruit;delete factor;factor = new BananaFactor;fruit = factor->CreateFruit();fruit->showName();delete fruit;delete factor;factor = new PearFactor;fruit = factor->CreateFruit();fruit->showName();delete fruit;delete factor;}int main() {test01();return 0; }測(cè)試結(jié)果:
總結(jié)
以上是生活随笔為你收集整理的[设计模式]工厂方法模式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Hybrid App中原生页面 VS H
- 下一篇: AMD 显卡/GPU 深度学习折腾指南