asp.net - 仅具有共享函数的类 - 为什么它不好?

标签 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

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

为什么这样不好?我该如何改进?

谢谢

最佳答案

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

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

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

关于asp.net - 仅具有共享函数的类 - 为什么它不好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1504306/

相关文章:

python - 回调与基于生成器的设计

类中的 lisp 文件指针

c++限制核心类可见性并提供干净的界面

javascript - 无法批量设置类的背景颜色

asp.net - 指定的 CGI 应用程序遇到错误,服务器终止了该进程

c# - 系统.安全.SecurityException : Request for principal permission failed

asp.net - 新的 ASP.NET 5 (ASP.NET MVC 6) 项目类型能否以常规 .NET 为目标?

c# - 类层次结构的适当设计

c++ - 从另一个类的构造函数将数组传递给类函数

asp.net - 保持用户登录状态 - FormsAuthentication