我在閱讀完整代碼並詢問「簡化參數傳遞」。作者說,如果你在幾個例程中傳遞一個參數,這可能表明需要將這些例程分解到一個類中,該類將參數作爲類數據共享。精簡參數傳遞
這是否意味着如果我有幾個單獨的類使用相同的數據,我應該創建一個新的類使用該數據,然後繼承以創建新的類?
或者
這是否意味着,如果我有一堆鬆散的程序在我的計劃,我應該繼續前進,把它們放在一個班,並獲得封裝的好處,等等
謝謝
我在閱讀完整代碼並詢問「簡化參數傳遞」。作者說,如果你在幾個例程中傳遞一個參數,這可能表明需要將這些例程分解到一個類中,該類將參數作爲類數據共享。精簡參數傳遞
這是否意味着如果我有幾個單獨的類使用相同的數據,我應該創建一個新的類使用該數據,然後繼承以創建新的類?
或者
這是否意味着,如果我有一堆鬆散的程序在我的計劃,我應該繼續前進,把它們放在一個班,並獲得封裝的好處,等等
謝謝
後者。它看起來像他們在談論這樣一個案例:
void function_1(std::string& my_data);
void function_2(std::string& my_data);
void main() {
std::string my_data = "SomeString";
function_1(my_data);
function_2(my_data);
}
這可能是更改爲:
class MyClass {
std::string my_data;
pulbic:
MyClass(const std::string& str) : my_data(str) {}
void function_1();
void function_2();
}
void main() {
MyClass obj("SomeString");
obj.function_1();
obj.function_2();
}
凡function_1
和function_2
使用my_data
領域,而不是被傳遞的字符串每次。
所以它是關於保持一段數據私有和在類中,而不是在類之間傳遞。 謝謝你的代碼示例。 – Athomas1
好吧,這是一個簡單的例子,所以可讀性的提高並不大。但是,如果我們有20個變量需要傳遞給每個函數,那麼將它們傳遞給構造函數會更簡潔一些。這是他們似乎要做的主要觀點。封裝很好,但其他原因。 –
不是每個人都必須在手邊預訂,因此如果您可以在問題中包含確切的引用,那將是很好的。 – user463035818
你所指的文本中有一個「可能」,並不意味着你應該*特別做任何事情,除非使用你自己的良好判斷來確定你的代碼是否可以從重構中受益。應用這個想法*可能會導致比你開始時更糟的混亂。 – molbdnilo