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

我在某处读到,拥有一个仅具有共享功能的类并不是一个好主意——但我不记得在哪里。

为什么这很糟糕,我该如何改进?

谢谢

4

2 回答 2

3

从您用于函数的命名看来,所有函数都描述了用户的属性(例如,用户是否是管理员)。

因此,将这些函数替换为用户对象的属性或让用户实现 IRole 接口似乎更自然**。

** 我并不是说你的设计是好是坏。根据上下文,这样的辅助类可能非常合理。

于 2009-10-01T14:37:03.817 回答
2

共享函数类似于静态函数,而静态函数又类似于全局函数或对象。

您在示例中所做的基本上是添加一些重定向和抽象,我认为这对于 Helper/Extension 类很好。

于 2009-10-01T14:32:00.123 回答