中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

做零售出口的網(wǎng)站seo綜合查詢怎么用的

做零售出口的網(wǎng)站,seo綜合查詢怎么用的,最流行的網(wǎng)站開發(fā)框架,網(wǎng)站建設(shè)備案流程圖目錄 C設(shè)計模式_創(chuàng)建型模式_工廠方法模式 一、簡單工廠模式 1.1 簡單工廠模式引入 1.2 簡單工廠模式 1.3 簡單工廠模式利弊分析 1.4 簡單工廠模式的UML圖 二、工廠方法模式 2.1 工廠模式和簡單工廠模式比較 2.2 工廠模式代碼實現(xiàn) 2.3 工廠模式UML 三、抽象工廠模式 3.1 戰(zhàn)斗場景…

目錄

C++設(shè)計模式_創(chuàng)建型模式_工廠方法模式

一、簡單工廠模式

1.1?簡單工廠模式引入

1.2 簡單工廠模式

1.3?簡單工廠模式利弊分析

1.4 簡單工廠模式的UML圖

二、工廠方法模式

2.1?工廠模式和簡單工廠模式比較

2.2?工廠模式代碼實現(xiàn)

2.3 工廠模式UML

三、抽象工廠模式

3.1?戰(zhàn)斗場景分類范例1?

3.1.1? 抽象工程代碼實現(xiàn)

3.1.2?抽象工廠模式優(yōu)缺點

3.1.3 抽象工廠模式UML

3.2 抽象工廠范例2

3.2.1 代碼實現(xiàn)

3.2.2 UML?

四、三個工廠模式總結(jié)


一、簡單工廠模式

1.1?簡單工廠模式引入

????????需求:假如現(xiàn)在游戲策劃提出了三個需求:增加三個怪物,亡靈類怪物,元素類怪物,機械類怪物,他們都有生命值,魔法值和攻擊力三個屬性。

? ? ? ??Monster作為怪物主類,M_Undead作為亡靈類,M_Element元素類,M_Mechanic機械類;

代碼如下:

namespace _namespace2
{class Monster{public:Monster(int life, int magic, int attack) :m_life(life), m_magic(magic), m_attack(attack) {}virtual ~Monster()  // 基類 析構(gòu) 虛方法{}protected:int m_life;int m_magic;int m_attack;};class M_Undead : public Monster{public:M_Undead(int life, int magic, int attack) : Monster(life,magic, attack) {cout << "亡靈類動物" << endl;}};class M_Element : public Monster{public:M_Element(int life, int magic, int attack) : Monster(life, magic, attack) {cout << "元素類動物" << endl;}};class M_Mechanic : public Monster{public:M_Mechanic(int life, int magic, int attack) : Monster(life, magic, attack) {cout << "機械類動物" << endl;}};}
void test1()
{_namespace2::Monster *m1 = new _namespace2::M_Undead(300, 100, 100);_namespace2::Monster *m2 = new _namespace2::M_Element(300, 100, 100);_namespace2::Monster *m3 = new _namespace2::M_Mechanic(300, 100, 100);/*亡靈類動物元素類動物機械類動物*/
}

????????上邊使用new? + 具體的類名來創(chuàng)建對象,這是一種具體類型的緊耦合關(guān)系。

1.2 簡單工廠模式

????????簡單工廠模式的實現(xiàn)思路:使用工廠類代替new來實現(xiàn)創(chuàng)建怪物的代碼,用戶在創(chuàng)建時候,與具體的類對象代碼隔離,做到了松耦合。

namespace _namespace1
{class Monster{public:Monster(int life, int magic, int attack) :m_life(life), m_magic(magic), m_attack(attack) {}virtual ~Monster()  // 基類 析構(gòu) 虛方法{}protected:int m_life;int m_magic;int m_attack;};class M_Undead : public Monster{public:M_Undead(int life, int magic, int attack) : Monster(life,magic, attack) {cout << "亡靈類動物" << endl;}};class M_Element : public Monster{public:M_Element(int life, int magic, int attack) : Monster(life, magic, attack) {cout << "元素類動物" << endl;}};class M_Mechanic : public Monster{public:M_Mechanic(int life, int magic, int attack) : Monster(life, magic, attack) {cout << "機械類動物" << endl;}};// 簡單工廠模式class MonsterFactor{public:Monster * createMonster(string strmontype){Monster *ptrobj = nullptr;if (strmontype == "a"){ptrobj = new M_Undead(300, 100, 100);}else if (strmontype == "b"){ptrobj = new M_Element(300, 100, 100);}else if (strmontype == "c"){ptrobj = new M_Mechanic(300, 100, 100);}return ptrobj;}};}
void test2()
{//2  簡單工廠模式的實現(xiàn)思路:使用工廠類可以實現(xiàn)創(chuàng)建怪物的代碼,用戶在創(chuàng)建時候,與具體的類對象要實現(xiàn)的邏輯代碼隔離。_namespace1::MonsterFactor fac;_namespace1::Monster *m1 = fac.createMonster("a");_namespace1::Monster *m2 = fac.createMonster("b");_namespace1::Monster *m3 = fac.createMonster("c");
實例化一個工廠對象,然后通過向工廠中傳遞對應(yīng)的標(biāo)識來創(chuàng)建對象。/*亡靈類動物元素類動物機械類動物*/
}

1.3?簡單工廠模式利弊分析

????????如果想新增加一個怪物,需要修改兩個位置,首先,新增加一個新的怪物類,然后在工廠類的createMonster() 方法中再增加一個if else。這種做法不符合開閉原則。

????????開閉原則:代碼的擴展性問題:對擴展開發(fā),對修改關(guān)閉。當(dāng)增加新功能,不應(yīng)該通過修改已經(jīng)存在的代碼,比如在createMonster()中增加if else(), 而是應(yīng)該通過擴展代碼比如增加新類,增加新成員函數(shù)來進行擴展。假如上邊要增加100個怪物類型,就要增加100個 if else(),這樣的做法不可取,如果只增加幾個,這樣方法也可以,所以應(yīng)該在代碼的可讀性和可擴展性之間做出權(quán)衡。

????????上面引入簡單工廠模式的意圖:定義一個工廠類,改類的成員函數(shù)可以根據(jù)不同的參數(shù)創(chuàng)建并返回不同的類對象,被創(chuàng)建的對象所屬的類一般都具有相同的父類,比如上邊的三個怪物類都繼承自Monster類,調(diào)用者無需關(guān)系創(chuàng)建對象的細(xì)節(jié)。

????????簡單工廠模式:實現(xiàn)了創(chuàng)建怪物代碼語具體怪物類解耦合的效果,即創(chuàng)建一個類時,用戶不必知道類名字,只需調(diào)用工廠類接口,將要創(chuàng)建的類的類型傳入,即可創(chuàng)建類。

1.4 簡單工廠模式的UML圖

????????工廠和類之間是has a 關(guān)系。


二、工廠方法模式

????????工廠方法模式簡稱工廠模式或多態(tài)工廠模式;與簡單工廠模式比,靈活性更強,實現(xiàn)也更加復(fù)雜,一如更多的新類。每一個工廠類對應(yīng)了怪物類,比如亡靈類對應(yīng)的工廠為亡靈工廠類。工廠模式:修改代碼不如增加代碼好,符合開閉原則。

2.1?工廠模式和簡單工廠模式比較

????????簡單工廠模式把創(chuàng)建對象這件事放在一個統(tǒng)一的工廠中處理,每增加一個類,就要在工廠中增加對應(yīng)的if else語句;而工廠模式相當(dāng)于創(chuàng)建一個框架,從而讓子類來決定給對象如何創(chuàng)建。工廠方法模式往往需要創(chuàng)建一個與產(chǎn)品等級結(jié)構(gòu)(層次)相同的工廠等級結(jié)構(gòu),這也新增加了新類的層次結(jié)構(gòu)和數(shù)目。

2.2?工廠模式代碼實現(xiàn)

namespace _sp1
{// 怪物類父類class CMonster{public:CMonster(int life,int maigc,int attack):m_life(life),m_magic(maigc), m_attack(attack){}protected:int m_life;int m_magic;int m_attack;};// 亡靈類class CUnded : public CMonster{public:CUnded(int life, int maigc, int attack) :CMonster(life, maigc, attack){cout << "亡靈類來到世界" << endl;}private:};// 元素類class CEle : public CMonster{public:CEle(int life, int maigc, int attack) :CMonster(life, maigc, attack){cout << "元素類來到世界" << endl;}private:};// 機械類class CMecanical : public CMonster{public:CMecanical(int life, int maigc, int attack) :CMonster(life, maigc, attack){cout << "機械類來到世界" << endl;}};// 簡單工廠模式:創(chuàng)建一個工廠類,在工廠類中返回對應(yīng)的 怪物類;// 工廠方法// 1 創(chuàng)建一個工廠基類;class CFactorMonster{public:virtual CMonster * createMonster() = 0;virtual ~CFactorMonster(){}};// 2 創(chuàng)建每個怪物的工廠class CFactorUnded : public CFactorMonster{public:virtual CMonster * createMonster(){CMonster *ptmp = new CUnded(200,300,400);return ptmp;}};class CFactorCEle : public CFactorMonster{public:virtual CMonster * createMonster(){CMonster *ptmp = new CEle(200, 300, 400);  // 多態(tài)return ptmp;}};// 創(chuàng)建一個全局方法CMonster *GlobalCreateMonster(CFactorMonster *factory){return factory->createMonster(); // 多態(tài)}
}
void test2()
{// 先 創(chuàng)建一個工廠父類;由于每個工廠具有固定的步驟,所以有工廠父類;_sp1::CFactorMonster *p = new _sp1::CFactorUnded();_sp1::CMonster *pp = p->createMonster();_sp1::CFactorMonster *p2 = new _sp1::CFactorCEle();_sp1::CMonster *pp2 = p2->createMonster();// 工廠模式創(chuàng)建了一個工廠父類,在此基礎(chǔ)上,又增加了每個怪物對應(yīng)的工廠;// 與簡單工廠模式比,比之前的復(fù)雜,但是靈活性更強,實現(xiàn)了 開閉原則,付出的代價是新增加了每個怪物的工廠類;// 
}

2.3 工廠模式UML


三、抽象工廠模式

????????使用兩個示例來說明和演示什么是抽象工廠模式,場景1是戰(zhàn)斗場景模式,場景2是產(chǎn)品類

3.1?戰(zhàn)斗場景分類范例1?

????????上邊的三種怪物類別分別是:亡靈類,元素類和機械類?,F(xiàn)在再將這三類怪物分為不同場景:沼澤地區(qū),山脈地區(qū),城鎮(zhèn)地區(qū)。這樣之前的三類怪物就成了9類怪物,類別如下圖所示:

上圖中有兩個概念:產(chǎn)品等級結(jié)構(gòu) 和 產(chǎn)品族。

抽象工廠模式按照產(chǎn)品族來生產(chǎn)商品。

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

3.1.1? 抽象工程代碼實現(xiàn)

實現(xiàn)上面9種怪物:

namespace _nsp1
{// 怪物類父類class CMonster{public:CMonster(int life, int maigc, int attack) :m_life(life), m_magic(maigc), m_attack(attack){}protected:int m_life;int m_magic;int m_attack;};/// 下面分別實現(xiàn)這9個類別,每個怪物類都繼承自怪物父類// 城鎮(zhèn)亡靈類class CMonsterTownUndead : public CMonster{public:CMonsterTownUndead(int life, int magic, int attack) : CMonster(life, magic, attack){cout << "一個城鎮(zhèn)亡靈類型怪物來到了這個世界" << endl;}};// 城鎮(zhèn)元素類class CMonsterTownElement : public CMonster{public:CMonsterTownElement(int life, int magic, int attack) : CMonster(life, magic, attack){cout << "一個城鎮(zhèn)元素類型怪物來到了這個世界" << endl;}};// 城鎮(zhèn)機械類class CMonsterTownMechanic : public CMonster{public:CMonsterTownMechanic(int life, int magic, int attack) : CMonster(life, magic, attack){cout << "一個城鎮(zhèn)機械類型怪物來到了這個世界" << endl;}};/// 山脈類// 山脈亡靈類class CMonsterMaintainUndead : public CMonster{public:CMonsterMaintainUndead(int life, int magic, int attack) : CMonster(life, magic, attack){cout << "一個山脈亡靈類型怪物來到了這個世界" << endl;}};// 山脈元素類class CMonsterMaintainElement : public CMonster{public:CMonsterMaintainElement(int life, int magic, int attack) : CMonster(life, magic, attack){cout << "一個山脈元素類型怪物來到了這個世界" << endl;}};// 山脈機械類class CMonsterMaintainMechanic : public CMonster{public:CMonsterMaintainMechanic(int life, int magic, int attack) : CMonster(life, magic, attack){cout << "一個山脈機械類型怪物來到了這個世界" << endl;}};/// 沼澤類// 沼澤亡靈類class CMonsterMarshUndead : public CMonster{public:CMonsterMarshUndead(int life, int magic, int attack) : CMonster(life, magic, attack){cout << "一個沼澤亡靈類型怪物來到了這個世界" << endl;}};// 沼澤元素類class CMonsterMarshElement : public CMonster{public:CMonsterMarshElement(int life, int magic, int attack) : CMonster(life, magic, attack){cout << "一個沼澤元素類型怪物來到了這個世界" << endl;}};// 沼澤機械類class CMonsterMarshMechanic : public CMonster{public:CMonsterMarshMechanic(int life, int magic, int attack) : CMonster(life, magic, attack){cout << "一個沼澤機械類型怪物來到了這個世界" << endl;}};/// 創(chuàng)建工廠class CMonsterFactory{public:virtual CMonster *createMonsterUndead() = 0;virtual CMonster *createMonsterElement() = 0;virtual CMonster *createMonsterMechanic() = 0;virtual ~CMonsterFactory(){}};// 城鎮(zhèn)類工廠:一個工廠能生產(chǎn)一個產(chǎn)品族class CMonsterFactoryTown : public CMonsterFactory{virtual CMonster *createMonsterUndead(){return new CMonsterTownUndead(100, 100, 100);}virtual CMonster *createMonsterElement(){return new CMonsterTownElement(100, 100, 100);}virtual CMonster *createMonsterMechanic(){return new CMonsterTownMechanic(100, 100, 100);}};// 山脈類怪物工廠class CMonsterFactoryMaintain : public CMonsterFactory{virtual CMonster *createMonsterUndead(){return new CMonsterMaintainUndead(100, 100, 100);}virtual CMonster *createMonsterElement(){return new CMonsterMaintainElement(100, 100, 100);}virtual CMonster *createMonsterMechanic(){return new CMonsterMaintainMechanic(100, 100, 100);}};// 沼澤類怪物工廠class CMonsterFactoryMarsh : public CMonsterFactory{virtual CMonster *createMonsterUndead(){return new CMonsterMarshUndead(100, 100, 100);}virtual CMonster *createMonsterElement(){return new CMonsterMarshElement(100, 100, 100);}virtual CMonster *createMarshMechanic(){return new CMonsterMaintainMechanic(100, 100, 100);}};}int main()
{_nsp1::CMonsterFactory *pc = new _nsp1::CMonsterFactoryTown();_nsp1::CMonster *pM1 = pc->createMonsterUndead();_nsp1::CMonster *pM2 = pc->createMonsterMechanic();_nsp1::CMonster *pM3 = pc->createMonsterElement();/*一個城鎮(zhèn)亡靈類型怪物來到了這個世界一個城鎮(zhèn)機械類型怪物來到了這個世界一個城鎮(zhèn)元素類型怪物來到了這個世界	*/system("pause");return 0;
}
3.1.2?抽象工廠模式優(yōu)缺點

1 如果增加一個新場景,比如增加一個森林場景,需要增加三個怪物,CMonsterForestUndead CMonsterForestElement? CMonsterForestMechnical等類,然后再創(chuàng)建森林工廠來創(chuàng)建這三個怪物類,這樣符合開閉原則。

2? 如果增加新怪物,比如增加龍類,不僅要增加三個繼承自CMonster的子類,還要修改Factory類,在該類中增加新的虛函數(shù)結(jié)構(gòu),比如createMonsterDragon(),同時各個子工廠中也要實現(xiàn)createMonsterDragon()類,這樣的修改不符合開閉原則。

3 只增加一個產(chǎn)品族則符合開閉原則,只需要增加新工廠子類,這是該模式的優(yōu)點。如果在某個場景中,比如在游戲中,怪物種類比較固定的情況下,更適合使用抽象工廠模式。

3.1.3 抽象工廠模式UML

3.2 抽象工廠范例2

????????以生產(chǎn)芭比娃娃為例,芭比娃娃由三部分組成,分別是:身體,衣服,鞋子;有三個工廠都能生產(chǎn)芭比娃娃的這三個部分,中國工廠,日本工廠和美國工廠,產(chǎn)品結(jié)構(gòu)圖如下:

????????現(xiàn)在需求,制作兩個芭比娃娃,第一個身體,衣服,鞋子全部采用中國廠商制造的部件。第二個芭比娃娃:中國生產(chǎn)的身體部件,日本工廠生產(chǎn)的衣服部件,美國產(chǎn)的鞋子部件。

3.2.1 代碼實現(xiàn)

????????類的設(shè)計思路:將身體,衣服,鞋子這三個部件實現(xiàn)為抽象類;實現(xiàn)一個抽象工廠,分別用來生產(chǎn)身體,衣服,鞋子這三個部件。實現(xiàn)這三個廠商的生產(chǎn)的部件。

namespace _namesp1
{// 1 三個組成部件// 身體部件 和 生產(chǎn)工廠class CBody{public:virtual void productName() = 0;virtual ~CBody() {}};class CBody_China : public CBody{public :virtual void productName(){cout << "中國牌身體" << endl;}};class CBody_America : public CBody{public:virtual void productName(){cout << "美國牌身體" << endl;}};class CBody_Japan : public CBody{public:virtual void productName(){cout << "日本牌身體" << endl;}};// 衣服部件 和 生產(chǎn)工廠class CCloth{public:virtual void productName() = 0;virtual ~CCloth() {}};class CCloth_China : public CCloth{public:virtual void productName(){cout << "中國牌衣服" << endl;}};class CCloth_America : public CCloth{public:virtual void productName(){cout << "美國牌衣服" << endl;}};class CCloth_Japan : public CCloth{public:virtual void productName(){cout << "日本牌衣服" << endl;}};// 鞋子部件 和 生產(chǎn)工廠class CShoes{public:virtual void productName() = 0;virtual ~CShoes() {}};class CShoes_China : public CShoes{public:virtual void productName(){cout << "中國牌鞋子" << endl;}};class CShoes_America : public CShoes{public:virtual void productName(){cout << "美國牌鞋子" << endl;}};class CShoes_Japan : public CShoes{public:virtual void productName(){cout << "日本牌鞋子" << endl;}};// 組裝芭比娃娃類class CBarbieDoll{public:CBarbieDoll(CBody *body1, CCloth *cloth1, CShoes *shoes1):body(body1),cloth(cloth1),shoes(shoes1) {}// 組成芭比娃娃void composeBar(){cout << "組成一個芭比娃娃" << endl;body->productName();cloth->productName();shoes->productName();}private:CBody *body;CCloth *cloth;CShoes *shoes;};// 抽象工廠類class CAbstractFactory{public:virtual CBody* createBody() = 0;virtual CCloth* createCloth() = 0;virtual CShoes* createShoes() = 0;virtual ~CAbstractFactory(){}};// 中國工廠class ChinaFactory : public CAbstractFactory{public:virtual CBody * createBody(){return new CBody_China;}virtual CCloth * createCloth(){return new CCloth_China;}virtual CShoes * createShoes(){return new CShoes_China;}};// 日本工廠class JapanFactory : public CAbstractFactory{public:virtual CBody * createBody(){return new CBody_Japan;}virtual CCloth * createCloth(){return new CCloth_Japan;}virtual CShoes * createShoes(){return new CShoes_Japan;}};// 美國工廠class AmericaFactory : public CAbstractFactory{public:virtual CBody * createBody(){return new CBody_America;}virtual CCloth * createCloth(){return new CCloth_America;}virtual CShoes * createShoes(){return new CShoes_America;}};
}int main()
{_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);//程序退出時檢測內(nèi)存泄漏并顯示到“輸出”窗口// 生產(chǎn)第一個娃娃_namesp1::CAbstractFactory *pChinaFactory = new _namesp1::ChinaFactory();_namesp1::CBody *pChinaBody = pChinaFactory->createBody();_namesp1::CCloth *pChinaCloth = pChinaFactory->createCloth();_namesp1::CShoes *pChinaShoes = pChinaFactory->createShoes();// 組裝_namesp1::CBarbieDoll *pbar = new _namesp1::CBarbieDoll(pChinaBody, pChinaCloth, pChinaShoes);pbar->composeBar();// 生產(chǎn)第二個娃娃_namesp1::CAbstractFactory *pAmericaFactory = new _namesp1::AmericaFactory();_namesp1::CAbstractFactory *pJapanFactory = new _namesp1::JapanFactory();_namesp1::CBody *pChinaBody2 = pChinaFactory->createBody();_namesp1::CCloth *pChinaCloth2 = pJapanFactory->createCloth();_namesp1::CShoes *pChinaShoes2 = pAmericaFactory->createShoes();// 組裝_namesp1::CBarbieDoll *pbar2 = new _namesp1::CBarbieDoll(pChinaBody2, pChinaCloth2, pChinaShoes2);pbar2->composeBar();/*組成一個芭比娃娃
中國牌身體
中國牌衣服
中國牌鞋子
組成一個芭比娃娃
中國牌身體
日本牌衣服
美國牌鞋子*/system("pause");return 0;
}

抽象工廠模式定義: 提供一個抽象工廠接口,此接口負(fù)責(zé)定義一個產(chǎn)品族;

3.2.2 UML?


四、三個工廠模式總結(jié)

1 代碼實現(xiàn)角度:修改工廠模式方法,使得一個工廠支持多個產(chǎn)品,就是抽象工廠模式;

2 從工廠數(shù)量來看:簡單工廠模式需要的工廠類最少,工廠模式需要的工廠類較多,抽象工廠用來生產(chǎn)一個產(chǎn)品族的產(chǎn)品。

3 從實際項目角度:小項目用簡單工廠模式,中大型項目:工廠模式;大型項目:抽象工廠模式。

http://www.risenshineclean.com/news/66068.html

相關(guān)文章:

  • 怎么做全民奪寶網(wǎng)站網(wǎng)絡(luò)服務(wù)
  • 做民宿最大的網(wǎng)站百度競價推廣代運營
  • 蘭州網(wǎng)站排名優(yōu)化公司惠城網(wǎng)站設(shè)計
  • 深圳公司網(wǎng)站制作互聯(lián)網(wǎng)營銷的方式有哪些
  • 網(wǎng)頁設(shè)計網(wǎng)站免登陸企業(yè)培訓(xùn)體系
  • 一個網(wǎng)址建多個網(wǎng)站seo是什么意思?
  • 網(wǎng)站方案投放廣告
  • wordpress related posts福州整站優(yōu)化
  • 做的好的家裝網(wǎng)站網(wǎng)站頁面設(shè)計模板
  • 合肥網(wǎng)站設(shè)計建東莞百度seo推廣公司
  • 織夢教育咨詢企業(yè)網(wǎng)站模板sem什么意思
  • 代理注冊公司有什么風(fēng)險合肥seo排名優(yōu)化公司
  • 網(wǎng)站建設(shè)公司yu泰安網(wǎng)站推廣優(yōu)化
  • 網(wǎng)站主機一個g西安網(wǎng)絡(luò)推廣公司
  • 自建導(dǎo)航站wordpress百度網(wǎng)盤資源鏈接入口
  • 網(wǎng)站改版提案百度指數(shù)與百度搜索量
  • 域名備案需要哪些資料東莞網(wǎng)站建設(shè)優(yōu)化推廣
  • 微信上的網(wǎng)站怎么做百度seo搜索引擎優(yōu)化培訓(xùn)
  • 怎么用ftp工具上傳網(wǎng)站源碼武漢seo首頁優(yōu)化公司
  • vs2015網(wǎng)站開發(fā)基礎(chǔ)樣式百度客服
  • 域名 網(wǎng)站名稱手機系統(tǒng)流暢神器
  • 05網(wǎng)答案深圳關(guān)鍵詞優(yōu)化平臺
  • 開發(fā)區(qū)網(wǎng)站建設(shè)游戲代理是怎么賺錢的如何代理游戲
  • 訊杰網(wǎng)站建設(shè)南寧seo教程
  • 做網(wǎng)站余姚做運營需要具備什么能力
  • 英文 日文網(wǎng)站建設(shè)申請seo賺錢嗎
  • 那個相親網(wǎng)站做的比較好網(wǎng)站流量分析工具
  • 開發(fā)一個官方網(wǎng)站要多少錢免費的關(guān)鍵詞優(yōu)化軟件
  • 自己做代練網(wǎng)站百度關(guān)鍵詞廣告怎么收費
  • 網(wǎng)站發(fā)展方向百度指數(shù)大數(shù)據(jù)分享平臺