Цитата:
|
Мне лично больше нравятся целиком статические функции/классы.
|
Сейчас плююсь и харкаюсь, пытаясь отрефакторить статичный класс, являющийся сервисом, используемым почти всеми приложениями нашей конторы.
Ругаю себя за мысль в том далеком прошлом "а этот класс хорошо бы сделать статическим, чтобы удобно было обращаться". Лучше б, блин, синглтоном сделал.
Сейчас это монтстр, изувеченный if-ами в ходе добавления функционала. Был бы он не статикой - можно хотябы с помощью наследования его расширить было. А сейчас вышел из положения тем что убрал из него всю логику - сделал из него обертку к нормальным человеческим классам (изменить нельзя - придется все приложения перекомпилировать), ну и параметризацию его этими классами.
(Правда, один товарищ благоразумно удержался от лепки if-ов и сделал обёртку для своего приложение над статикой. Но это не сильно щас помогает, потому как функционал нужен многим, а не только его приложению)
Теперь твердо уверен, что статический класс имеет право на жизнь только тогда, когда не имеет состояния (не содержит внутренних/внешних полей) и то не всегда - как его в духе "стратегии" подпихнуть то?