摘要:工厂模式:根据用户需求,动态生成类的实例,避免过于依赖其他的类;类的高度耦合,一旦依赖的类发生改变时,其它new出来的也要跟着改成,所以要采用工厂模式。class Tody { public function work() {  
工厂模式:根据用户需求,动态生成类的实例,避免过于依赖其他的类;类的高度耦合,一旦依赖的类发生改变时,其它new出来的也要跟着改成,所以要采用工厂模式。
class Tody { public function work() { return '学习php'; } } class Mody { public function run() { return '学习mysql'; } } class Factory //创建工厂类 { public static function create($className) //实例化传入的类,$className为参数名 { switch (strtolower($className)) {// strtolower 全部转化为小写 判断传入的参数 case 'tody': return new Tody(); //传入的是tody,则创建Tody类 break; case 'mody': return new Mody(); break; } } } class Student { public function sphp() { $tody = Factory::create('tody'); //传入的是tody参数,执行case“dody里的 return new Tody();” return '今天'.$tody-> work(); //执行Tody类里面的work方法 } public function smysql() { $auto = Factory::create('mody');; return '明天'.$auto->run(); } } $student = new Student; echo $student->sphp(); //执行Student类里面的sphp方法 echo '<br>'; echo $student->smysql();
备注:工厂模式没有依赖注入模式好用。