2017《物件導向程式設計》課程作業七

2022-04-01 16:46:43 字數 1302 閱讀 9350

有乙個隨機類作為基類,隨機數類和隨機符號類繼承基類,各自增加保護成員隨機數和隨機符號,後在各自的random()方法中對隨機數和隨機符號賦值。

隨機表示式類通過保護繼承的方式繼承隨機數類和隨機符號類,在random()方法中將隨機數和隨機符號組合成隨機表示式。使用時需要新建乙個randomexpression物件,並呼叫它的random()函式。

github

class random

};class randomoperation:protected random;

srand(time(null));

for(int i=1;i<=3;i++)

}protected:

char op[4];

};class randomnumber:protected random

protected:

int n[5];

};class randomexpression:protected randomoperation,protected randomnumber

public:

char expression[8];

};

看了一些博文後,結合自己的理解,感覺簡單工廠模式充當了乙個switch語句,根據switch的結果,具體的操作是建立不同的物件。

適用場合:1. 在程式中,需要建立的物件很多,導致物件的new操作多且雜時,需要使用簡單工廠模式;

2. 由於物件的建立過程是我們不需要去關心的,而我們注重的是物件的實際操作,所以,我們需要分離物件的建立和操作兩部分,如此,方便後期的程式擴充套件和維護。

優點:簡單工廠模式能夠根據外界給定的資訊,決定究竟應該建立哪個具體類的物件。明確區分了各自的職責和權力,有利於整個軟體體系結構的優化。

以上摘自我看的兩篇文章:

詳解設計模式之工廠模式(簡單工廠+工廠方法+抽象工廠)

c++設計模式——簡單工廠模式

兩篇文章舉的例子都很好地幫助我理解。通過展現簡單工廠模式被使用的場景,我有一點理解到簡單工廠模式出現的原因。

至於把簡單工廠模式運用到本次作業的第乙個要求,依我淺薄的理解,我覺得很勉強。。。。。。首先我不知道這個要求中自己的理解對不對,a產品是隨機數,b產品是隨機操作符這樣的嗎?然而在一次出題中只要建立乙個randomexpression物件,如果特意建立乙個工廠類分別生產隨機數和隨機操作符再把它們組合起來,這樣操作不會顯得多餘嗎?以及把隨機數和隨機操作符單獨拿出來成類我也覺得很奇怪。。。我之前已經把這兩個當做成員函式封裝到算式類裡面了啊。。。。。。

2017《物件導向程式設計》課程作業七

題目描述 expression.cpp define random a,b rand b a 1 a class random class randomnumber public random int random int down,int up return random down,up clas...

《物件導向程式設計》課程作業七

題目描述 請將隨機生成數字 表示式的部分設計成 乙個random基類,基類中有random 方法。並由該基類派生出randomnumber類 randomoperation類,繼承並覆蓋父類方法。學習簡單工廠模式,思考能否將該模式運用到題目的第一點要求中。include includeusing n...

2017《物件導向程式設計》課程作業五

搭建主體框架 github 又經過乙個禮拜關於類的學習,對類有知道的又多一點啦 加上老師對於上次作業的提示,我對於計算器有了新的劃分 一共兩個類,乙個是使用者類,乙個是算式類。使用者類的資料成員包括使用者語言 使用者題量 使用者答案 函式成員包括選擇語言 從指定檔案讀取題量 輸入答案 算式類的資料成...