日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > asp.net >内容正文

asp.net

设计模式----2(简单工厂模式的概念,简单工厂模式的实现,简单工厂模式的优缺点)

發(fā)布時(shí)間:2023/11/30 asp.net 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 设计模式----2(简单工厂模式的概念,简单工厂模式的实现,简单工厂模式的优缺点) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

簡(jiǎn)單工廠模式

簡(jiǎn)單工廠模式的概念

簡(jiǎn)單工廠模式屬于類的創(chuàng)建型模式,又叫做靜態(tài)工廠方法模式。通過(guò)專門(mén)定義一個(gè)類來(lái)負(fù) 責(zé)創(chuàng)建其他類的實(shí)例,被創(chuàng)建的實(shí)例通常都具有共同的父類。

具體分類

  • 工廠(Creator)角色 簡(jiǎn)單工廠模式的核心,
    它負(fù)責(zé)實(shí)現(xiàn)創(chuàng)建所有實(shí)例的內(nèi)部邏輯。工廠類可以被外界直接調(diào) 用,創(chuàng)建所需的產(chǎn)品對(duì)象。
  • 抽象(Product)角色
    簡(jiǎn)單工廠模式所創(chuàng)建的所有對(duì)象的父類,它負(fù)責(zé)描述所有實(shí)例所共有的公共接口。
  • 具體產(chǎn)品(ConcreteProduct)角色
    簡(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)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。