我有一个名为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
我在某个地方读到了一个只有共享函数的类并不是一个好主意 - 但我不记得在哪里。
为什么这很糟糕,我该如何改进?
谢谢
答案 0 :(得分:3)
根据您用于函数的命名,似乎所有函数都描述了用户的属性(例如,用户是否为管理员)。
因此,将这些函数替换为用户对象的属性或让用户实现IRole接口似乎更自然。
**我不是说你的设计好坏。根据上下文,这样的帮助类可能是合理的。
答案 1 :(得分:2)
共享函数就像静态函数,而静态函数又类似于全局函数或对象。
你在你的例子中实际上做的是添加一些重定向和抽象,我认为这对Helper / Extension类来说很好。