abstract class Op{
abstract public function getValue($num1,$num2);
public function getAttr(){
return 1;
}
}
class Add extends Op{
public function getValue($num1, $num2){
return $num1+$num2;
}
}
class Mul extends Op{
public function getValue($num1, $num2){
return $num1*$num2;
}
}
class Factory{
public static function CreateObj($op){
switch ($op){
case '+': return new Add();
case '-': return new Mul();
}
}
}
$Op=Factory::CreateObj('-');
echo $Op->getValue(3, 6);
用在真正开发中一般当做数据库选择类
一个抽象类,作为模子,样板
第一个类实现了抽象类,class1
第二个类实现了抽象类,class2
创建一个工厂类,包含一个静态方法,根据(if、switch)条件来选择实例化那个类进行下步操作