2014-07-17 78 views
0

讓實例方法調用靜態方法來完成其工作是否有任何傷害或好處?實例方法的傷害或好處調用靜態方法

如果您對我的意思感到困惑,請查看下面的示例代碼。 StripFormatting是一種實例方法和靜態方法。如果另一個開發人員創建了一個PhoneUtil的實例,那麼只需要在該對象的實例上調用StripFormatting方法即可。如果開發人員決定不創建PhoneUtil的實例,則可以調用靜態方法,但此方法具有PhoneNumber的參數。

public string StripFormatting() 
{ 
     return PhoneUtil.StripFormatting(this.PhoneNumber); 
} 

public static string StripFormatting(string psPhoneNumber) 
{ 
     string tsPhoneNumber = psPhoneNumber; 
     Regex toNotDigit = new Regex("\\D+"); 
     tsPhoneNumber = toNotDigit.Replace(tsPhoneNumber, ""); 
     return tsPhoneNumber; 
} 

回答

0

成員函數或靜態方法根據您的軟件設計進行選擇。有優點缺點關於你選擇的設計。

一般來說,如果該方法對某些類型的內部狀態沒有任何影響,並且不需要存儲某些數據,則可以考慮使用靜態方法,簡而言之:它只是執行。

在所有其他情況下使用實例方法。

重複這是一個基本的想法,因爲一切都取決於你的設計。

例如:查看所提供的代碼我發現您寫的方法可以很容易地製作成static

相關問題