Класс только с общими функциями - почему это плохо? - PullRequest
3 голосов
/ 01 октября 2009

У меня есть класс 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 ]

3 голосов
/ 01 октября 2009

Из названия, которое вы использовали для своих функций, кажется, что все функции описывают свойства пользователя (например, является ли пользователь администратором).

Поэтому было бы более естественным ** заменить эти функции свойствами вашего пользовательского объекта или заставить вашего пользователя реализовать интерфейс IRole.

** Я не говорю, что ваш дизайн хороший или плохой. В зависимости от контекста такой вспомогательный класс вполне может быть разумным.

2 голосов
/ 01 октября 2009

Общие функции похожи на статические функции, которые, в свою очередь, похожи на глобальные функции или объекты.

Что вы, по сути, делаете в своем примере, это добавление некоторого перенаправления и абстракции, что, я думаю, хорошо для классов Helper / Extension.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...