Есть ли альтернатива конструкций if else?
+ красиво выглядит
- сразу делает вычисления
- вряд ли получится делать вложенные вычисленияswitch (true) {
  case class_exists(...):
    // code 1
  case method_exists(...):
    // code 2
}
есть, называется меняйте алгоритм, унифицируйте структуры, устраняйте различия, ну и ООП нормальное, а не курильщика (без статики, с использованием инкапсуляции, разделения ответственности и полиморфизма).