Good day every one,
We use a lot of statements like if-else or switch-case for creating different object depending on different conditions like:
interface Job {
public function do();
}
class Auto implement Job {
...
}
class Month implement Job {
...
}
...
// another script to run jobs
...
switch($type) {
case 'auto':
$instance = new Auto();
break;
case 'month':
$instance = new Month();
break;
default:
throw new Exception('not support type!');
}
$instance->do();
The problem is if we use if-else / switch-case make code grows fast with more and more types.
We can use reflection or dynamical instance initiation however the IDE (like PHPStorm) will not able to find the class usage..
Is there any better way against using switch-case?