Всякий раз, когда я кодирую решение чего-то, я стараюсь либо использовать множество статических классов, либо вообще ничего. Например, в недавнем проекте мне пришлось отправить класс с некоторыми данными string/bool/datetime через несколько обручей, и единственным элементом, который не был статичным, был этот класс хранения данных. Все остальное (3 довольно классных класса с различными обязанностями по обработке) были статическими.Когда начинать статические классы?
Я думаю, что я прошу здесь, это какой-то ввод, когда (и почему) я должен избегать использования статических классов для этих «процессов X, вывод Y». Можно ли всегда использовать их, пока они работают, или я стреляю себе в ногу относительно масштабируемости, поддержки плагинов и т. Д.?
Надеюсь, что это вопрос ОК, чтобы спросить здесь. Я не прошу аргументации относительно того, являются ли статические классы «лучшими» - просто введите, когда я должен избегать их использования.
Первое, что мне подсказывает, почему вы не могли заставить «класс хранения данных» отвечать за любые манипуляции, необходимые для его данных? Это позволило бы избежать необходимости добавления дополнительных статических классов и уменьшить ненужную связь. –
Это уже широко описано здесь, попробуйте эти ссылки для начала: [Используется для статических родовых классов?] (Http://stackoverflow.com/questions/2685046/uses-for-static-generic-classes) & [Расширение Методы vs Static Utility Class] (http://stackoverflow.com/questions/4646328/extension-methods-vs-static-utility-class) – slugster
Инструмент анализа кода в VS 2008 всегда будет рекомендовать методы/классы должны быть статическими, если они не имеют или не используют данные экземпляра. Это хорошая практика? – Polyfun