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

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

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

4.工厂方法模式

發(fā)布時(shí)間:2024/9/27 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 4.工厂方法模式 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1工廠(chǎng)方法模式的核心內(nèi)容是:

A:每種方法通過(guò)獨(dú)立的類(lèi)來(lái)表示。

B:通過(guò)工廠(chǎng)來(lái)創(chuàng)建實(shí)例化方法

C:理解:帶同一個(gè)妹子到不同的地點(diǎn)(麥當(dāng)勞,肯德基….)去吃飯.

2工廠(chǎng)方法模式的作用:程序訪(fǎng)問(wèn)不同的工廠(chǎng),來(lái)讓工廠(chǎng)創(chuàng)建自己想要的操作。

3工廠(chǎng)方法模式具體描述

工廠(chǎng)方法模式:核心工廠(chǎng)類(lèi)不再負(fù)責(zé)所有產(chǎn)品的創(chuàng)建,

而是將具體創(chuàng)建的工作交給子類(lèi)去做,成為一個(gè)抽象工廠(chǎng)角色

僅負(fù)責(zé)給出具體工廠(chǎng)類(lèi)必須實(shí)現(xiàn)的接口,

而不接觸哪一個(gè)產(chǎn)品類(lèi)應(yīng)當(dāng)被實(shí)例化這種細(xì)節(jié)。

?

請(qǐng)MM去麥當(dāng)勞吃漢堡,不同的MM有不同的口味,

要每個(gè)都記住是一件煩人的事情,我一般采用Factory Method模式,

帶著MM到服務(wù)員那兒,說(shuō)“要一個(gè)漢堡”,具體要什么樣的漢堡呢,

MM直接跟服務(wù)員說(shuō)就行了。

4.工廠(chǎng)方法模式類(lèi)圖

5.代碼:

#include<iostream>

#include <string>

?

using namespace std;

?

//工廠(chǎng)方法模式:核心工廠(chǎng)類(lèi)不再負(fù)責(zé)所有產(chǎn)品的創(chuàng)建,

//而是將具體創(chuàng)建的工作交給子類(lèi)去做,成為一個(gè)抽象工廠(chǎng)角色

//,僅負(fù)責(zé)給出具體工廠(chǎng)類(lèi)必須實(shí)現(xiàn)的接口,

//而不接觸哪一個(gè)產(chǎn)品類(lèi)應(yīng)當(dāng)被實(shí)例化這種細(xì)節(jié)。

?

//請(qǐng)MM去麥當(dāng)勞吃漢堡,不同的MM有不同的口味,

//要每個(gè)都記住是一件煩人的事情,我一般采用Factory Method模式,

//帶著MM到服務(wù)員那兒,說(shuō)“要一個(gè)漢堡”,具體要什么樣的漢堡呢,

//MM直接跟服務(wù)員說(shuō)就行了。

?

//操作類(lèi)

class Operation

{

public:

??? double numberA, numberB;

??? virtual double? getResult()//

??? {

??????? return 0;

??? }

};

?

//加操作

class addOperation :public Operation

{

??? double getResult()

??? {

??????? return numberA + numberB;

??? }

};

?

//減操作

class subOperation :public Operation

{

??? double getResult()

??? {

??????? return numberA - numberB;

??? }

};

?

//乘操作

class mulOperation :public Operation

{

??? double getResult()

??? {

??????? return numberA*numberB;

??? }

};

?

//除操作

class divOperation :public Operation

{

??? double getResult()

??? {

??????? return numberA / numberB;

??? }

};

?

//工廠(chǎng)

class IFactory

{

public:

??? virtual Operation *createOperation() = 0;

};

?

//add工廠(chǎng)

class AddFactory :public IFactory

{

public:

??? static Operation *createOperation()

??? {

??????? return new addOperation();

??? }

};

?

//減工廠(chǎng)

class SubFactory :public IFactory

{

public:

??? static Operation *createOperation()

??? {

??????? return new subOperation();

??? }

};

?

//乘工廠(chǎng)

class MulFactory :public IFactory

{

public:

??? static Operation *createOperation()

??? {

??????? return new mulOperation();

??? }

};

?

//除操作

class DivFactory :public IFactory

{

public:

??? static Operation *createOperation()

??? {

??????? return new divOperation();

??? }

};

?

int main()

{

??? Operation *oper = MulFactory::createOperation();

??? oper->numberA = 9;

??? oper->numberB = 99;

??? cout << oper->getResult() << endl;

??? cin.get();

??? return 0;

}

運(yùn)行結(jié)果如下:

891



總結(jié)

以上是生活随笔為你收集整理的4.工厂方法模式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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