Когда я слышу слова Common
, Manager
, Helper
, я сразу думаю о запахе кода. Нет ничего проще, чем назвать класс без реального значения и просто скрыть внутри огромный код. Обычно это происходит, когда разработчик слишком подвержен процессуальному программированию.
Отвечая на вопрос - мне вообще не нравятся статичные вещи (проблемы параллелизма, управление временем жизни более сложных экземпляров и т. Д.). Есть редкие случаи, когда static полезен, и я считаю, что это не один из них.
Если подходит «статический вспомогательный метод wannabe», напишите метод расширения. Если это не так, то это должно быть в отдельном сервисе или в базовом классе чего-либо (это зависит от контекста).
То есть класс, который управляет вещами, не должен называться SomethingManager? Я не согласен в этом конкретном случае
Есть случаи, когда это может быть уместно. Но, как я понимаю, «XManager» просто говорит вам, что этот класс «Manager» работает с классом «X» и «управляет» чем-то, что должно означать «управление». Помощники помогают с чем-то. Что именно? Кто знает - надо проверить код. «Общее» еще более расплывчато. Видел все виды вещей в таких классах / пространствах имен / проектах (доступ к данным, безопасность и связанные с пользовательским интерфейсом вещи, связанные с логикой бизнес-домена).
Хммм ... так что, может быть, пространство имен Us.Common {public (static?) Class Strings {} public (static?) Class Files {} public (static?) Class Settings {}} Мнения об этой архитектуре меняются? Еще раз, я заинтересован в удобстве обслуживания и удобстве использования, пожалуйста.
Возможно, вам будет полезен этот пост . Согласно этому - это Logical cohesion
в вашем случае.