Очередной признак плохого кода - отсутствие свойств у класса. Опять же, это только признак, а не гарантия плохого кода. Бывает множество случаев, когда классы могут быть без свойств. Но если у вас в проекте большинство классов без свойств - это серьезный сигнал остановится и подумать, а все ли верно?
Если честно, классы без состояний и свойств вызывают у меня очень серьезное подозрение. Я имею в виду вообще без свойств. Если их нет, то это уже получается что-то без состояний, в чем бывает необходимость, но очень редко. Просто посмотреть на классы в составе .NET, как часто мы наталкиваемся на классы со свойствами.
Если в классе можно все методы сделать статичными, и функционал не поменяется, то почему они не статичные?
Если у тебя в коде есть if оператор, который в зависимости от условия выполняет разные действия:
void func() { If (type == 1) { // логика функции #1 . . . . . . } If (type == 2) { // логика функции #2 . . . . . . } }