I use simple Factory pattern
, look at screen, please:
As you can see I use switch operator to choose object and create instance.
But if there are over 100 classes? Problem is came. How to avoid switch construction? Using interface?
You can avoid switch
or if
statements by using variable with class name together with new
keyword the only thing you have to care about is namespace
! Your code must look like this:
$className = "YourNamespace\\SomeFactory\\SomeImplementation\\" . $type;
return new $className(new Position());
Also, you can check if class exists:
if (class_exists($className) === false) {
throw new Exception("Class $className not found.");
}
and only after that create you new instance.