2011-01-11 92 views
2

這裏雖然我在調試,我發現登錄方法是一種靜態方法?爲什麼我的登錄方法聲明爲靜態?

  1. 它是否給 方法提供更多的安全性?
  2. 通常什麼類型的方法 應該是靜態的?以及我如何 決定?

    靜態公共賬號登錄(電子郵件字符串,字符串密碼){

+1

究竟是什麼使該代碼成爲「服務」?是否有一個特定的原因,你不叫更常見的名稱「方法」? – 2011-01-11 11:52:13

回答

1

我不能看到在作出方法靜態任何安全利益。

理想情況下,服務應該通過接口公開,以便不同的實現可以輕鬆地交換;這也支持單元測試。聲明爲靜態的方法通常是不需要狀態的輔助方法。

也許在你的情況下,這個服務被公開爲靜態的,這樣它可以很容易地在整個代碼庫中被引用,而不必查找(或者連線)服務實例。

1

正在static不會以任何重要的方式影響「安全」。

事實上,在這種情況下,「安全」可能意味着很多不同的事情(我沒有看到它受到方法靜態性的影響)。

方法可以當它不需要訪問其類的任何非靜態成員時被設置爲靜態。方法應該當它的操作應該獨立於它的類的任何特定對象時被設置爲靜態的。

1

你的問題的答案可以在任何基本的面向對象的編程書中找到。基本的OO概念非常適合在Java中使用,因爲java是OO語言。

通常,身份驗證需要與其他對象協作以實現某些功能......它需要訪問用戶存儲,可能需要訪問加密或散列服務。

如果你的方法沒有狀態,只使用傳入的對象,並返回所有的輸出作爲方法的輸出,那麼它可能是一個很好的候選對象,但這對安全性完全沒有影響。

相關問題