[課程作業七]
基類.
class random
;~random(){};
virtual void random()=0;
virtual char randomoperation()=0;
virtula int randomnumber()=0;
};
(派生類)生成隨機數.
class randomnumber:virtual public random
;~randomnumber(){};
virtual char randomoperation;
virtula int randomnumber;
int get_number(int i)
};
(派生類)生成隨機運算子.
class randomoperation:virtual public random
~randomoperator(){}
virtual char randomoperation(); //隨機符號
virtual int randomnunber();
char get_operation(int i)
};
(派生類)生成隨機式子.
class randomexpression:public randomoperation,public randomnumber
for(int i=1;i<10;i++)
}void random(){};
void random(char c[100]);
};
(各類的成員函式).
void randomnumber::random()
}void randomoperation::random() }}
理解:將使用者的客戶端的所需要求傳送至簡單工廠裡,在這個工廠裡負責生產滿足客戶要求的產品,這個產品是抽象多種產品聚合而成的,就像玩具的零件一樣,要生產抽象a元件,生產抽象b元件等,這些零碎的元件有抽象產品直接掌管,不需客戶端和工廠直接參與。
解析:
優點及缺點:
優點:因為分工明確,使用者在使用時可以直接根據工廠類去建立所需的例項,有利於整個軟體體系結構的優化。
缺點:工廠類就需要判斷何時建立何種種類的產品,這就和建立何種種類產品的產品相互混淆在了一起,違背了單一職責,導致系統喪失靈活性和可維護性。
總而言之就是,就像乙個公司,規模越大,效率越高,客戶越多,同時一旦出了亂子,後果也是很大的。
[學習資料]
課程作業(七)
github inherit include includeusing namespace std define random a,b rand b a 1 a class random class randomnumber public random int random int down,int...
《物件導向程式設計》課程作業七
題目描述 請將隨機生成數字 表示式的部分設計成 乙個random基類,基類中有random 方法。並由該基類派生出randomnumber類 randomoperation類,繼承並覆蓋父類方法。學習簡單工廠模式,思考能否將該模式運用到題目的第一點要求中。include includeusing n...
2017《物件導向程式設計》課程作業七
有乙個隨機類作為基類,隨機數類和隨機符號類繼承基類,各自增加保護成員隨機數和隨機符號,後在各自的random 方法中對隨機數和隨機符號賦值。隨機表示式類通過保護繼承的方式繼承隨機數類和隨機符號類,在random 方法中將隨機數和隨機符號組合成隨機表示式。使用時需要新建乙個randomexpressi...