设计模式学习笔记—简单工厂模式
abstract class Grade {
protected $personInfo = array();
public function setPersonInfo($name){
$this->personInfo['name'] = $name;
}
//不同部门可能有不同处理,抽象此方法
abstract public function setDepartment($department);
public function save(){
//todo
}
}
//员工实例
class Staff extend Grade{
public function setDepartment($department){
$this->personInfo['department'] = $department;
//todo staff
}
}
//经理实例
class Manager extend Grade{
public function setDepartment($department){
$this->personInfo['department'] = $department;
//todo staff
}
}
//工厂类
class GradeFactory{
public static function create($grade){
switch($graade){
case 'staff':
$re = new Staff();
break;
case 'manager':
$re = new Manager();
break;
default:
$re = new Staff();
}
}
}