只有共享功能的类 - 为什么不好?

时间:2009-10-01 14:30:03

标签: asp.net class class-design shared

我有一个名为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

我在某个地方读到了一个只有共享函数的类并不是一个好主意 - 但我不记得在哪里。

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

谢谢

2 个答案:

答案 0 :(得分:3)

根据您用于函数的命名,似乎所有函数都描述了用户的属性(例如,用户是否为管理员)。

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

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

答案 1 :(得分:2)

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

你在你的例子中实际上做的是添加一些重定向和抽象,我认为这对Helper / Extension类来说很好。