国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

C++11 設(shè)計(jì)模式4. 抽象工廠(Abstract Factory)模式

這篇具有很好參考價值的文章主要介紹了C++11 設(shè)計(jì)模式4. 抽象工廠(Abstract Factory)模式。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

問題的提出

從前面我們已經(jīng)使用了工廠方法模式 解決了一些問題。

現(xiàn)在 策劃又提出了新的需求:對于各個怪物,在不同的場景下,怪物的面板數(shù)值會發(fā)生變化,

?? ?//怪物分類:亡靈類,元素類,機(jī)械類
?? ?//戰(zhàn)斗場景分類:沼澤地區(qū),山脈地區(qū),城鎮(zhèn)。

那么就有9類怪物====>沼澤地亡靈類、元素類、機(jī)械類,山脈地區(qū)亡靈類、元素類、機(jī)械類,城鎮(zhèn)中的亡靈類、元素類、機(jī)械類
?? ?//工廠方法模式:一個工廠創(chuàng)建一種類怪物。我們就要創(chuàng)建9個工廠了。

C++11 設(shè)計(jì)模式4. 抽象工廠(Abstract Factory)模式,設(shè)計(jì)模式

抽象模式的核心思想

?? ?//但如果一個工廠子類能夠創(chuàng)建不止一種而是多種具有相同規(guī)則的怪物對象,那么就可以有效的減少所創(chuàng)建的工廠子類數(shù)量,這就是抽象工廠模式的核心思想。
?

兩個概念:a)產(chǎn)品等級結(jié)構(gòu) ? b)產(chǎn)品族

在這里,我們先要弄清楚 兩個概念:a)產(chǎn)品等級結(jié)構(gòu) ? b)產(chǎn)品族
?? ?//抽象工廠模式是按照產(chǎn)品族來生產(chǎn)產(chǎn)品(產(chǎn)地相同的用一個工廠來生產(chǎn))——一個地點(diǎn)有一個工廠,該工廠負(fù)責(zé)生產(chǎn)本產(chǎn)地的所有產(chǎn)品。
?

代碼實(shí)現(xiàn)

第一步:肯定是先將9個類先弄出來

第二步:第二步,定義一個抽象工廠類

?? ?//所有工廠類的父類

第三步:具體沼澤地區(qū)的工廠

#include <iostream>
using namespace std;

namespace _namespace1 {

	//第一步,定義9個怪物和其父類
	//怪物父類
	class Monster
	{
	public:
		//構(gòu)造函數(shù)
		Monster(int life, int magic, int attack) :m_life(life), m_magic(magic), m_attack(attack) {}
		virtual ~Monster() {} //做父類時析構(gòu)函數(shù)應(yīng)該為虛函數(shù)

	protected://可能被子類訪問的成員,所以用protected修飾
		//怪物屬性
		int m_life; //生命值
		int m_magic; //魔法值
		int m_attack; //攻擊力
	};

	//沼澤亡靈類怪物
	class M_Undead_Swamp :public Monster
	{
	public:
		M_Undead_Swamp(int life, int magic, int attack) :Monster(life, magic, attack)
		{
			cout << "一個沼澤的亡靈類怪物來到了這個世界" << endl;
		}
	};
	//沼澤元素類怪物
	class M_Element_Swamp :public Monster
	{
	public:
		M_Element_Swamp(int life, int magic, int attack) :Monster(life, magic, attack)
		{
			cout << "一個沼澤的元素類怪物來到了這個世界" << endl;
		}
	};
	//沼澤機(jī)械類怪物
	class M_Mechanic_Swamp :public Monster
	{
	public:
		M_Mechanic_Swamp(int life, int magic, int attack) :Monster(life, magic, attack)
		{
			cout << "一個沼澤的機(jī)械類怪物來到了這個世界" << endl;
		}
	};
	//--------------------------
	//山脈亡靈類怪物
	class M_Undead_Mountain :public Monster
	{
	public:
		M_Undead_Mountain(int life, int magic, int attack) :Monster(life, magic, attack)
		{
			cout << "一個山脈的亡靈類怪物來到了這個世界" << endl;
		}
	};
	//山脈元素類怪物
	class M_Element_Mountain :public Monster
	{
	public:
		M_Element_Mountain(int life, int magic, int attack) :Monster(life, magic, attack)
		{
			cout << "一個山脈的元素類怪物來到了這個世界" << endl;
		}
	};
	//山脈機(jī)械類怪物
	class M_Mechanic_Mountain :public Monster
	{
	public:
		M_Mechanic_Mountain(int life, int magic, int attack) :Monster(life, magic, attack)
		{
			cout << "一個山脈的機(jī)械類怪物來到了這個世界" << endl;
		}
	};
	//--------------------------
	//城鎮(zhèn)亡靈類怪物
	class M_Undead_Town :public Monster
	{
	public:
		M_Undead_Town(int life, int magic, int attack) :Monster(life, magic, attack)
		{
			cout << "一個城鎮(zhèn)的亡靈類怪物來到了這個世界" << endl;
		}
	};
	//城鎮(zhèn)元素類怪物
	class M_Element_Town :public Monster
	{
	public:
		M_Element_Town(int life, int magic, int attack) :Monster(life, magic, attack)
		{
			cout << "一個城鎮(zhèn)的元素類怪物來到了這個世界" << endl;
		}
	};
	//城鎮(zhèn)機(jī)械類怪物
	class M_Mechanic_Town :public Monster
	{
	public:
		M_Mechanic_Town(int life, int magic, int attack) :Monster(life, magic, attack)
		{
			cout << "一個城鎮(zhèn)的機(jī)械類怪物來到了這個世界" << endl;
		}
	};


	//如上已經(jīng)把9個怪物定義出來了
	//第二步,定義一個抽象工廠類
	//所有工廠類的父類
	class M_ParFactory
	{
	public:
		virtual Monster* createMonster_Undead() = 0; //創(chuàng)建亡靈類怪物
		virtual Monster* createMonster_Element() = 0; //創(chuàng)建元素類怪物
		virtual Monster* createMonster_Mechanic() = 0; //創(chuàng)建機(jī)械類怪物
		virtual ~M_ParFactory() {} //做父類時析構(gòu)函數(shù)應(yīng)該為虛函數(shù)
	};

	//沼澤地區(qū)的工廠
	class M_Factory_Swamp :public M_ParFactory
	{
	public:
		virtual Monster* createMonster_Undead()
		{
			return new M_Undead_Swamp(300, 50, 120); //創(chuàng)建沼澤亡靈類怪物
		}
		virtual Monster* createMonster_Element()
		{
			return new M_Element_Swamp(200, 80, 110); //創(chuàng)建沼澤元素類怪物
		}
		virtual Monster* createMonster_Mechanic()
		{
			return new M_Mechanic_Swamp(400, 0, 90); //創(chuàng)建沼澤機(jī)械類怪物
		}
	};
	//--------------------------
	//山脈地區(qū)的工廠
	class M_Factory_Mountain :public M_ParFactory
	{
	public:
		virtual Monster* createMonster_Undead()
		{
			return new M_Undead_Mountain(300, 50, 80); //創(chuàng)建山脈亡靈類怪物
		}
		virtual Monster* createMonster_Element()
		{
			return new M_Element_Mountain(200, 80, 100); //創(chuàng)建山脈元素類怪物
		}
		virtual Monster* createMonster_Mechanic()
		{
			return new M_Mechanic_Mountain(600, 0, 110); //創(chuàng)建山脈機(jī)械類怪物
		}
	};
	//--------------------------
	//城鎮(zhèn)的工廠
	class M_Factory_Town :public M_ParFactory
	{
	public:
		virtual Monster* createMonster_Undead()
		{
			return new M_Undead_Town(300, 50, 80); //創(chuàng)建城鎮(zhèn)亡靈類怪物
		}
		virtual Monster* createMonster_Element()
		{
			return new M_Element_Town(200, 80, 100); //創(chuàng)建城鎮(zhèn)元素類怪物
		}
		virtual Monster* createMonster_Mechanic()
		{
			return new M_Mechanic_Town(400, 0, 110); //創(chuàng)建城鎮(zhèn)機(jī)械類怪物
		}
	};


}



int main() {

	_namespace1::M_ParFactory* p_mou_fy = new _namespace1::M_Factory_Mountain(); //多態(tài)工廠,山脈地區(qū)的工廠
	_namespace1::Monster* pM1 = p_mou_fy->createMonster_Element(); //創(chuàng)建山脈地區(qū)的元素類怪物

	_namespace1::M_ParFactory* p_twn_fy = new _namespace1::M_Factory_Town(); //多態(tài)工廠,城鎮(zhèn)的工廠
	_namespace1::Monster* pM2 = p_twn_fy->createMonster_Undead(); //創(chuàng)建城鎮(zhèn)地區(qū)的亡靈類怪物
	_namespace1::Monster* pM3 = p_twn_fy->createMonster_Mechanic(); //創(chuàng)建城鎮(zhèn)地區(qū)的機(jī)械類怪物

	//釋放資源
	//釋放工廠
	delete p_mou_fy;
	delete p_twn_fy;

	delete pM1;
	delete pM2;
	delete pM3;
	return 0;
}

C++11 設(shè)計(jì)模式4. 抽象工廠(Abstract Factory)模式,設(shè)計(jì)模式

第二個例子:

不同廠商生產(chǎn)不同部件范例
?? ?//芭比娃娃:身體(包括頭、頸部、軀干、四肢)、衣服、鞋子
?? ?//中國,日本,美國 廠商
?? ?//要求:制作兩個芭比娃娃,第一個:身體,衣服,鞋子,全部采用中國廠商制造的部件。
?? ? ? ? ? ? ? ? ? ? ? ? ? ?//第二個:身體采用中國廠商,衣服部件采用日本廠商,鞋子部件采用美國廠商。
?? ?//類的設(shè)計(jì)思路:
?? ?//a)將身體,衣服,鞋子 這三個部件實(shí)現(xiàn)為抽象類。
?? ?//b)實(shí)現(xiàn)一個抽象工廠,分別用來生產(chǎn)身體、衣服、鞋子這三個部件。
?? ?//c)針對不同廠商的每個部件實(shí)現(xiàn)具體的類以及每個廠商所代表的具體工廠。

C++11 設(shè)計(jì)模式4. 抽象工廠(Abstract Factory)模式,設(shè)計(jì)模式

C++11 設(shè)計(jì)模式4. 抽象工廠(Abstract Factory)模式,設(shè)計(jì)模式

namespace _nmsp3
{
	//身體抽象類
	class Body
	{
	public:
		virtual void getName() = 0;
		virtual ~Body() {}
	};

	//衣服抽象類
	class Clothes
	{
	public:
		virtual void getName() = 0;
		virtual ~Clothes() {}
	};

	//鞋子抽象類
	class Shoes
	{
	public:
		virtual void getName() = 0;
		virtual ~Shoes() {}
	};

	//---------------------------
	//抽象工廠類
	class AbstractFactory
	{
	public:
		//所創(chuàng)建的部件應(yīng)該穩(wěn)定的保持這三個部件,才適合抽象工廠模式
		virtual Body* createBody() = 0; //創(chuàng)建身體
		virtual Clothes* createClothes() = 0; //創(chuàng)建衣服
		virtual Shoes* createShoes() = 0; //創(chuàng)建鞋子
		virtual ~AbstractFactory() {}
	};

	//---------------------------
	//芭比娃娃類
	class BarbieDoll
	{
	public:
		//構(gòu)造函數(shù)
		BarbieDoll(Body* tmpbody, Clothes* tmpclothes, Shoes* tmpshoes)
		{
			body = tmpbody;
			clothes = tmpclothes;
			shoes = tmpshoes;
		}

		void Assemble() //組裝芭比娃娃
		{
			cout << "成功組裝了一個芭比娃娃:" << endl;
			body->getName();
			clothes->getName();
			shoes->getName();
		}

	private:
		Body* body;
		Clothes* clothes;
		Shoes* shoes;
	};
	//---------------------------
	//中國廠商實(shí)現(xiàn)的三個部件
	class China_Body :public Body
	{
	public:
		virtual void getName()
		{
			cout << "中國廠商產(chǎn)的_身體部件" << endl;
		}
	};
	class China_Clothes :public Clothes
	{
	public:
		virtual void getName()
		{
			cout << "中國廠商產(chǎn)的_衣服部件" << endl;
		}
	};
	class China_Shoes :public Shoes
	{
	public:
		virtual void getName()
		{
			cout << "中國廠商產(chǎn)的_鞋子部件" << endl;
		}
	};
	//創(chuàng)建一個中國工廠
	class ChinaFactory : public AbstractFactory
	{
	public:
		virtual Body* createBody()
		{
			return new China_Body;
		}
		virtual Clothes* createClothes()
		{
			return new China_Clothes;
		}
		virtual Shoes* createShoes()
		{
			return new China_Shoes;
		}
	};
	//---------------------------
	//日本廠商實(shí)現(xiàn)的三個部件
	class Japan_Body :public Body
	{
	public:
		virtual void getName()
		{
			cout << "日本廠商產(chǎn)的_身體部件" << endl;
		}
	};
	class Japan_Clothes :public Clothes
	{
	public:
		virtual void getName()
		{
			cout << "日本廠商產(chǎn)的_衣服部件" << endl;
		}
	};
	class Japan_Shoes :public Shoes
	{
	public:
		virtual void getName()
		{
			cout << "日本廠商產(chǎn)的_鞋子部件" << endl;
		}
	};
	//創(chuàng)建一個日本工廠
	class JapanFactory : public AbstractFactory
	{
	public:
		virtual Body* createBody()
		{
			return new Japan_Body;
		}
		virtual Clothes* createClothes()
		{
			return new Japan_Clothes;
		}
		virtual Shoes* createShoes()
		{
			return new Japan_Shoes;
		}
	};
	//---------------------------
	//美國廠商實(shí)現(xiàn)的三個部件
	class America_Body :public Body
	{
	public:
		virtual void getName()
		{
			cout << "美國廠商產(chǎn)的_身體部件" << endl;
		}
	};
	class America_Clothes :public Clothes
	{
	public:
		virtual void getName()
		{
			cout << "美國廠商產(chǎn)的_衣服部件" << endl;
		}
	};
	class America_Shoes :public Shoes
	{
	public:
		virtual void getName()
		{
			cout << "美國廠商產(chǎn)的_鞋子部件" << endl;
		}
	};
	//創(chuàng)建一個美國工廠
	class AmericaFactory : public AbstractFactory
	{
	public:
		virtual Body* createBody()
		{
			return new America_Body;
		}
		virtual Clothes* createClothes()
		{
			return new America_Clothes;
		}
		virtual Shoes* createShoes()
		{
			return new America_Shoes;
		}
	};
}


int main() {


	//創(chuàng)建第一個芭比娃娃------------
	//(1)創(chuàng)建一個中國工廠
	_nmsp3::AbstractFactory* pChinaFactory = new _nmsp3::ChinaFactory();
	//(2)創(chuàng)建中國產(chǎn)的各種部件
	_nmsp3::Body* pChinaBody = pChinaFactory->createBody();
	_nmsp3::Clothes* pChinaClothes = pChinaFactory->createClothes();
	_nmsp3::Shoes* pChinaShoes = pChinaFactory->createShoes();
	//(3)創(chuàng)建芭比娃娃
	_nmsp3::BarbieDoll* pbd1obj = new _nmsp3::BarbieDoll(pChinaBody, pChinaClothes, pChinaShoes);
	pbd1obj->Assemble(); //組裝芭比娃娃

	cout << "-------------------------------------" << endl;
	//創(chuàng)建第二個芭比娃娃------------
	//(1)創(chuàng)建另外兩個工廠:日本工廠,美國工廠
	_nmsp3::AbstractFactory* pJapanFactory = new _nmsp3::JapanFactory();
	_nmsp3::AbstractFactory* pAmericaFactory = new _nmsp3::AmericaFactory();
	//(2)創(chuàng)建中國產(chǎn)的身體部件,日本產(chǎn)的衣服部件,美國產(chǎn)的鞋子部件
	_nmsp3::Body* pChinaBody2 = pChinaFactory->createBody();
	_nmsp3::Clothes* pJapanClothes = pJapanFactory->createClothes();
	_nmsp3::Shoes* pAmericaShoes = pAmericaFactory->createShoes();
	//(3)創(chuàng)建芭比娃娃
	_nmsp3::BarbieDoll* pbd2obj = new _nmsp3::BarbieDoll(pChinaBody2, pJapanClothes, pAmericaShoes);
	pbd2obj->Assemble(); //組裝芭比娃娃

	//最后記得釋放內(nèi)存----------------
	delete pbd1obj;
	delete pChinaShoes;
	delete pChinaClothes;
	delete pChinaBody;
	delete pChinaFactory;
	//------------
	delete pbd2obj;
	delete pAmericaShoes;
	delete pJapanClothes;
	delete pChinaBody2;
	delete pAmericaFactory;
	delete pJapanFactory;

	return 0;
}

工廠方法模式 和 抽象工廠模式的區(qū)別


?? ?//工廠方法模式和抽象工廠模式區(qū)別:
?? ?//a)工廠方法模式:一個工廠生產(chǎn)一個產(chǎn)品
?? ?//b)抽象工廠模式:一個工廠生產(chǎn)多個產(chǎn)品(產(chǎn)品族)

?? ?//抽象工廠模式的定義(實(shí)現(xiàn)意圖):提供一個接口(AbstractFactory),
?? ? ? ? ? //讓該接口負(fù)責(zé)創(chuàng)建一系列相關(guān)或者相互依賴的對象(Body,Clothes,Shoes),而無需指定他們具體的類。文章來源地址http://www.zghlxwxcb.cn/news/detail-851285.html

到了這里,關(guān)于C++11 設(shè)計(jì)模式4. 抽象工廠(Abstract Factory)模式的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Abstract Factory Pattern 抽象工廠模式簡介與 C# 示例【創(chuàng)建型】【設(shè)計(jì)模式來了】

    Abstract Factory Pattern 抽象工廠模式簡介與 C# 示例【創(chuàng)建型】【設(shè)計(jì)模式來了】

    一句話解釋: ??提供一個接口,以創(chuàng)建一系列相關(guān)或相互依賴的抽象對象,而無需指定它們具體的類。 (將一系列抽象類裝進(jìn)接口,一次接口實(shí)現(xiàn),就必須實(shí)例化這一系列抽象類) 抽象工廠模式(Abstract Factory Pattern)是一種創(chuàng)建型模式。它用于創(chuàng)建一組相關(guān)對象的家族。

    2024年02月07日
    瀏覽(18)
  • 抽象工廠模式(Abstract Factory)

    抽象工廠模式(Abstract Factory)

    抽象工廠是一種 創(chuàng)建型設(shè)計(jì)模式 ,它能 創(chuàng)建一系列相關(guān)的對象,而無需指定其具體類 。 1. 問題 假設(shè)你正在開發(fā)一款家具商店模擬器。你的代碼中包括一些類,用于表示: 一系列相關(guān)產(chǎn)品,例如椅子(Chair)、沙發(fā)(Sofa)和咖啡桌(CoffeeTable) 系列產(chǎn)品的不同變體,例如你

    2024年02月11日
    瀏覽(22)
  • 抽象工廠模式(Abstract Factory Pattern)

    抽象工廠模式(Abstract Factory Pattern)

    回顧工廠方法設(shè)計(jì)模式的不足:具體產(chǎn)品增加時,系統(tǒng)中類的個數(shù)將成對增加,在一定程度上增加了系統(tǒng)的復(fù)雜度 產(chǎn)品等級結(jié)構(gòu):產(chǎn)品等級結(jié)構(gòu)即產(chǎn)品的繼承結(jié)構(gòu),即抽象產(chǎn)品與具體產(chǎn)品 產(chǎn)品族:在抽象工廠模式中,產(chǎn)品族是指由同一個工廠生產(chǎn)的,位于不同產(chǎn)品等級結(jié)構(gòu)

    2024年02月02日
    瀏覽(26)
  • 抽象工廠模式-Abstract Factory Pattern

    抽象工廠模式-Abstract Factory Pattern

    原文地址:https://jaune162.blog/design-pattern/abstract-factory-pattern/ 首先我們由一個實(shí)際問題來引出抽象工廠模式。 考慮這樣一個場景,系統(tǒng)中需要向OSS上傳文件,以及通過OSS下載文件。而在系統(tǒng)中有不同的業(yè)務(wù)在使用這兩個功能。如下圖: 偽代碼如下

    2024年02月20日
    瀏覽(20)
  • Abstract Factory 抽象工廠

    Abstract Factory 抽象工廠

    提供一個創(chuàng)建一系列相關(guān)或相互依賴對象的接口,而無需指定他們具體的類。 其中: AbstractFactory聲明一個創(chuàng)建抽象產(chǎn)品對象的操作接口。 ConcreteFactory實(shí)現(xiàn)創(chuàng)建具體產(chǎn)品對象的操作。 AbstractProduct為一類產(chǎn)品對象聲明一個接口。 ConcreteProduct定義一個將被相應(yīng)的具體工廠創(chuàng)建的

    2024年04月11日
    瀏覽(27)
  • 設(shè)計(jì)模式-工廠模式Factory

    設(shè)計(jì)模式-工廠模式Factory

    一般情況下,工廠模式分為三種更加細(xì)分的類型:簡單工廠、工廠方法和抽象工廠。 簡單工廠叫作靜態(tài)工廠方法模式(Static Factory Method Pattern) 現(xiàn)在有一個場景,需要一個資源加載器,要 根據(jù)不用的url 進(jìn)行資源加載,但是如果我們將 所有的加載實(shí)現(xiàn)代碼全部封裝在了一個

    2024年02月09日
    瀏覽(17)
  • 【設(shè)計(jì)模式-04】Factory工廠模式

    【設(shè)計(jì)模式-04】Factory工廠模式

    簡單工廠 靜態(tài)工廠 工廠方法 FactoryMethod 產(chǎn)品維度擴(kuò)展 抽象工廠 產(chǎn)品一族進(jìn)行擴(kuò)展 Spring IOC 任何可以產(chǎn)生對象的方法或類,都可以稱之為工廠 單例也是一種工廠 不可咬文嚼字,死扣概念 為什么有了new之后,還要有工廠? 靈活控制生產(chǎn)過程 權(quán)限、日志、修飾... 任意定制交通

    2024年02月02日
    瀏覽(23)
  • 設(shè)計(jì)模式--工廠模式(Factory Pattern)

    設(shè)計(jì)模式--工廠模式(Factory Pattern)

    工廠模式(Factory Pattern)是一種創(chuàng)建型設(shè)計(jì)模式,它提供了一種創(chuàng)建對象的接口,但是將對象的實(shí)例化過程推遲到子類中。工廠模式允許通過調(diào)用一個共同的接口方法來創(chuàng)建不同類型的對象,而無需暴露對象的實(shí)例化邏輯。 工廠模式的主要目標(biāo)是解耦對象的創(chuàng)建和使用,以及

    2024年02月10日
    瀏覽(31)
  • 自學(xué)設(shè)計(jì)模式(簡單工廠模式、工廠模式、抽象工廠模式)

    使用工廠模式來生產(chǎn)某類對象(代碼簡化且容易維護(hù),類之間有血緣關(guān)系,可以通過工廠類進(jìn)行生產(chǎn)); 簡單工廠模式(用于創(chuàng)建簡單對象) 對于簡單工廠模式,需要的工廠類只有一個; 在工廠類中的公共成員函數(shù)來創(chuàng)建所需對象; 工廠模式 簡單工廠模式會違反開放封閉

    2024年02月11日
    瀏覽(27)
  • 【設(shè)計(jì)模式】單例模式、工廠方法模式、抽象工廠模式

    1. 單例模式 (Singleton Pattern): 場景: 在一個應(yīng)用程序中,需要一個全局唯一的配置管理器,確保配置信息只有一個實(shí)例。 2. 工廠方法模式 (Factory Method Pattern): 場景: 創(chuàng)建一組具有相似功能但具體實(shí)現(xiàn)不同的日志記錄器。 3. 抽象工廠模式 (Abstract Factory Pattern): 場景: 創(chuàng)建不同

    2024年01月15日
    瀏覽(29)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包