2009-10-01 54 views
3

我有一個名爲MembershipHelper的類,我在ASP.NET項目中使用它。它看起來像這樣:只有共享功能的類 - 爲什麼它不好?

Public Class MembershipHelper 

    Public Shared Function IsMultiStoreUser() As Boolean 
    return Roles.IsUserInRole(....) 
    End Function 

    Public Shared Function IsAdmin() As Boolean 
    return Roles.IsUserInRole(....) 
    End Function 

    Public Shared Function IsReaderOnly() As Boolean 
    return Roles.IsUserInRole(....) 
    End Function 

End Class 

我讀的地方,它不是一個好主意,有隻共享功能的一類 - 但我不記得在哪裏。

爲什麼這樣不好,我該如何改進?

謝謝

回答

3

從您用於功能的命名看來,所有功能都描述了用戶的屬性(例如用戶是否是管理員)。

因此,將這些函數替換爲用戶對象的屬性或讓用戶實現IRole接口似乎更自然。

**我不是說你的設計好壞。取決於上下文,這樣的輔助類可能非常合理。

+0

啊....這很有道理。我想這將是更優雅的解決方案。 – vikasde 2009-10-01 14:38:29

2

共享函數就像靜態函數一樣,它又像全局函數或對象。

你在本質上正在做的是增加一些重定向和抽象,我認爲這對Helper/Extension類很好。

+0

...並具有全局功能不好? – vikasde 2009-10-01 14:33:21

+0

是................... – 2009-10-01 14:33:50

+0

爲什麼那麼糟糕? – vikasde 2009-10-01 14:37:22