// access fields directly
private void doThis()
{
return doSomeWork(this.data);
}
// receive data as an argument
private void doThis(data)
{
return doSomeWork(data);
}
而第二個選項避免這種耦合的第一個選項被耦合到在this.data值。我覺得第二個選擇總是更好。它促進了課堂內部的鬆散耦合。無所不在地訪問全局類數據似乎是一個糟糕的主意。很顯然,這個類的數據需要在某個時候直接訪問。但是,如果對這個全局類數據的訪問可以通過參數傳遞來消除,似乎總是可取的。
第二個例子的優點是可以處理任何正確類型的數據,而第一個例子只能使用正確的類數據。即使您不需要額外的靈活性,將它作爲選項似乎也不錯。
我只是沒有看到任何直接從私有方法訪問成員數據的優勢,如第一個例子。這裏最好的做法是什麼?我已經引用完整的代碼,但無法找到關於此特定問題的任何內容。