Search code examples
asp.netclassclass-designshared

Class with just Shared functions - Why is it bad?


I have a class called MembershipHelper, which I am using in my ASP.NET project. It looks like this:

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

I read somewhere that its not a good idea to have a class with just shared functions - but I don't remember where.

Why is this bad and how can I improve it?

Thank you


Solution

  • From the naming that you used for your functions it seems that all functions describe properties of a user (e.g. whether the user is an admin).

    Therefore it would seem more natural** to have these functions replaced by properties of your user object or by having your user implement an IRole interface.

    ** I'm not saying that your design is good or bad. Depending on the context such a helper class might very well be reasonable.