這個問題是關於OOP設計的。 將所有參數傳遞給類構造函數vs將參數傳遞給成員函數有什麼優點/缺點?將所有參數傳遞給類構造函數並將參數傳遞給成員函數
就我而言,我知道程序開始時的所有參數,在程序結束前我不需要改變它們。
在C++中的情況是類似的東西(雖然我的代碼需要分析更多的參數和成員函數都比較複雜):
// All arguments in class constructor
Rectangle::Rectangle(float base, float height, string rectColor){
this->area = 0;
this->base = base;
this->height = height;
this->rectColor = rectColor;
}
void Rectangle::calcArea(){
area = base * height;
}
void Rectangle::paintRectangle(){
// use area
// whatever
}
VS
// Arguments in member functions
Rectangle::Rectancle(){
this->area = 0;
}
void Rectangle::calcArea(float base, float height){
area = base * height;
}
void Rectangle::paintRectangle(string rectColor){
// use area
// whatever
}
一種策略我使用的是:如果我需要多個成員函數中的變量,我把它變成一個類變量。這是好還是最好的方法?
將所有內容傳遞給構造函數的一個壞處是它會有很多參數。而且我也不需要在我的main中調用類成員函數。
請解釋我應遵循的主要原則。
老實說,第二個提議並不壞,但這不再是喲。 –