设计模式----2(简单工厂模式的概念,简单工厂模式的实现,简单工厂模式的优缺点)
簡(jiǎn)單工廠模式
簡(jiǎn)單工廠模式的概念
簡(jiǎn)單工廠模式屬于類的創(chuàng)建型模式,又叫做靜態(tài)工廠方法模式。通過(guò)專門(mén)定義一個(gè)類來(lái)負(fù) 責(zé)創(chuàng)建其他類的實(shí)例,被創(chuàng)建的實(shí)例通常都具有共同的父類。
具體分類
它負(fù)責(zé)實(shí)現(xiàn)創(chuàng)建所有實(shí)例的內(nèi)部邏輯。工廠類可以被外界直接調(diào) 用,創(chuàng)建所需的產(chǎn)品對(duì)象。
簡(jiǎn)單工廠模式所創(chuàng)建的所有對(duì)象的父類,它負(fù)責(zé)描述所有實(shí)例所共有的公共接口。
簡(jiǎn)單工廠模式所創(chuàng)建的具體實(shí)例對(duì)象
簡(jiǎn)單工廠模式不是23種設(shè)計(jì)模式,因?yàn)樗⒉环祥_(kāi)閉原則
簡(jiǎn)單工廠模式的優(yōu)缺點(diǎn)
在這個(gè)模式中,工廠類是整個(gè)模式的關(guān)鍵所在。它包含必要的判斷邏輯,能夠根據(jù)外界 給定的信息,決定究竟應(yīng)該創(chuàng)建哪個(gè)具體類的對(duì)象。用戶在使用時(shí)可以直接根據(jù)工廠類去創(chuàng) 建所需的實(shí)例,而無(wú)需了解這些對(duì)象是如何創(chuàng)建以及如何組織的。有利于整個(gè)軟件體系結(jié)構(gòu) 的優(yōu)化。
不難發(fā)現(xiàn),簡(jiǎn)單工廠模式的缺點(diǎn)也正體現(xiàn)在其工廠類上,由于工廠類集中了所有實(shí) 例的創(chuàng)建邏輯,所以“高內(nèi)聚”方面做的并不好。另外,當(dāng)系統(tǒng)中的具體產(chǎn)品類不斷增多時(shí),可能會(huì)出現(xiàn)要求工廠類也要做相應(yīng)的修改,擴(kuò)展性并不很好。
簡(jiǎn)單工廠模式的實(shí)現(xiàn)
#include<iostream> using namespace std;//抽象水果 class AbstractFruit{ public:virtual void ShowName() = 0;};//蘋(píng)果 class Apple :public AbstractFruit{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;} };//建立一個(gè)工廠 class FruitFactory{ public:static AbstractFruit *CreateFruit(string flag){if (flag == "apple"){return new Apple;}else if (flag == "pear"){return new Pear;}else if (flag == "banana"){return new Banana;}} };void test01(){FruitFactory *factory = new FruitFactory;AbstractFruit *fruit = factory->CreateFruit("apple");fruit->ShowName();delete fruit;fruit = factory->CreateFruit("banana");fruit->ShowName();delete fruit;fruit = factory->CreateFruit("pear");fruit->ShowName();delete fruit; }int main(void) {test01();system("pause");return 0; }總結(jié)
以上是生活随笔為你收集整理的设计模式----2(简单工厂模式的概念,简单工厂模式的实现,简单工厂模式的优缺点)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 成都大熊猫繁育研究基地怎么去
- 下一篇: 设计模式---3(工厂方法模式的概念,工