這類問題看上去沒有什麼意義,但是很多bug都在此繁殖旺盛。
我認為成員變量的一個存在的意義是為了保存成員方法之間的狀態,也就是說,成員變量使成員方法耦合在一起。但是,對於類來說,要盡量減少對狀態的維護,維護的狀態越多,維護它的復雜度就會呈幾何集數陡增,所以我曾經也寫過一篇文章討論通過參數列表來限制成員變量的作用范圍。如果成員變量通過參數傳遞,使得成員方法不直接依賴於成員變量,那麼應該當機立斷,將這個成員方法聲明為靜態方法,使其顯示地不能訪問成員變量。
為什麼要限制成員變量和成員方法的使用,因為當類變得復雜之後,如果維護的方法是一個成員方法,那麼在這裡很可能錯誤的改變了某個成員變量的狀態(當然,如果維護人員對業務需求非常的熟悉,並且當時維護人員大腦中反應出來的信息和即將被處理的信息是完全一至的,我的這種假設是不成立的。),使得成員方法之間的失去了狀態的一致性,從而產生bug。
當然,這個問題到這裡還沒有完,我也還在思考,還望大家多多指教。