Какое имя является идеальным для моего статического класса, который имеет некоторые статические методы для обработки общих / общих функций, например, создание резервных копий, сохранение последних элементов и т.д. (Infact Misc items) в C #. Я хотел бы иметь Manager как суффикс имени класса (например: SaleManager (для обработки функций, связанных с продажами), ContatManager (для обработки функций, связанных с контактами)
Идеальное имя для статического класса для различных функций
Ответы (10)
RefactorMeManager.
Вот несколько классов .NET Framework, которые выполняют эти типы операций:
- System.Environment
- System.Math
- System.IO.File
- System.IO.Directory
- System.IO.Path
- System.Runtime.InteropServices.Marshal
Как видите, процедуры сгруппированы по темам в классы, и ни к одному из классов не добавлены «Помощник» или «Утилиты». Вот несколько созданных мной классов, которые выполняют некоторые из этих вещей:
- SymbolicMath (как класс Math, но для работы с символьными математическими выражениями)
- BigIntegerMath (библиотека большой целочисленной арифметики с использованием типа System.Numerics.BigInteger - доказательство простоты, факторинг и некоторые другие вещи)
Оказывается, «Полезность» спорна, а «Математика» - нет. Казалось бы, название должно указывать на общую функциональность методов статического класса.
Если у вас есть класс Utility (или UtilityManager), в котором есть множество статических методов, это действительно антипаттерн, и его следует немедленно реорганизовать.
Однако есть такие вещи, как утилиты, и не следует отказываться от помещения их в отдельный класс Утилиты (мой личный фаворит). Да, это открывает дверь для всевозможных уродливых сценариев, и нужно держать бразды правления, или что-то еще, и все закончится там, и да, есть необходимость «продвигать» методы в свой собственный класс (обычно XXXHelper) если возникнет необходимость, но, тем не менее, я считаю класс Utilities полезной конструкцией, а не антипаттерном сам по себе. Выкройки все-таки рекомендация, а не религия :)
Менеджер как суффикс для такого класса сбивает с толку, потому что класс фактически ничем не управляет.
Да здравствует internal static class Utils
.
По моему общему мнению, не должно быть такого общего класса. В частности, электронная почта, скорее всего, расширится до чего-то большего, чем просто метод SendEmail (), и, откровенно говоря, new Email({to, subject, body}).Send()
имеет гораздо больше смысла в объектно-ориентированном стиле.
Инструменты
Утилиты
Расширения (если вы поместите туда только методы расширения (C #))
UtilityManager ..?
Есть очень веские причины не делать таких вещей. Считается антипаттерном.
Даже для статических классов (кстати, я предпочитаю суффикс XxxHelper) я бы придерживался парадигмы «Разделение проблем "и не будет смешивать разные утилиты в одном классе.