我在PHP中实现类似对象工厂的东西。 我有:
class Factory{
public static function createObject($objectType){
$object = new ObjectParent();
//... implement specific code for objectChild of the given type
return $object;
}
}
class ObjectParent(){
}
这样,我得到一个对象,它的类名将是ObjectParent;我没有为我想要创建的每个ObjectChild创建一个类,所以我希望能够做到:
$newObject = Factory::createObject('myObjectType');
echo get_class($newObject);
//result -> 'myObjectType'
这甚至可能吗?怎么样? 谢谢
答案 0 :(得分:3)
public static function createObject($objectType){
eval('class '.$objectType.' extends ObjectParent {}');
return new $objectType();
}