Я не новичок в программировании ОО, но я столкнулся с загадочной ситуацией. Мне дали программу для работы и расширения, но предыдущие разработчики, казалось, не чувствовали себя комфортно с ОО, похоже, они либо имели опыт работы с Си или неясное понимание ОО. Теперь я не считаю себя лучшим разработчиком, я просто думаю, что могу заметить некоторые распространенные ошибки ОО. Сложная задача - как их исправить.
В моем случае я вижу многое из этого:
if (ret == 1) {
out.print("yadda yadda");
} else if (ret == 2) {
out.print("yadda yadda");
} else if (ret == 3) {
out.print("yadda yadda");
} else if (ret == 0) {
out.print("yadda yadda");
} else if (ret == 5) {
out.print("yadda yadda");
} else if (ret == 6) {
out.print("yadda yadda");
} else if (ret == 7) {
out.print("yadda yadda");
}
ret - это значение, возвращаемое функцией, в которой все исключения исключаются, а в блоках перехвата вышеуказанные значения возвращаются явно. Часто Исключения просто проглатываются с пустыми блоками перехвата.
Очевидно, что проглатывание исключений - неправильный дизайн ОО. Мой вопрос касается использования возвращаемых значений. Я считаю, что это тоже неправильно, однако я думаю, что использование исключений для потока управления в равной степени неправильно, и я не могу придумать ничего, что могло бы заменить вышесказанное правильным, ООП.
Ваш вклад, пожалуйста?