答案 0 :(得分:1)
您可以通过使用带有类名的变量和switch
关键字来避免if
或new
语句,您唯一需要关注的是namespace
!您的代码必须如下所示:
$className = "YourNamespace\\SomeFactory\\SomeImplementation\\" . $type;
return new $className(new Position());
此外,您可以检查是否存在类:
if (class_exists($className) === false) {
throw new Exception("Class $className not found.");
}
然后才创建新实例。