工厂模式是一种按需生产对象的模式
工厂模式通常是需要在大型项目中,会出现很多相同功能的类,此时可以使用工厂产生对象
工厂模式的有点是能够方便后期对类的维护(更名)
工厂模式的缺点是随着功能的增加,会需要增加很多开发量(开发多个工厂)
demo
<?php class man{ public function display(){ echo '这是男人类<br/>'; } } class woman{ public function display(){ echo '这是女人类<br/>'; } } //工厂类 class factory{ //工厂方法,专门生产类的对象 (默认1) /*public function getInstance($classname){ return new $classname(); }*/ //静态工厂方法,专门生产类的对象 (默认2) /*public static function getInstance($classname){ return new $classname(); }*/ //封装匿名工厂方法 public static function getInstance($flag){ switch ($flag){ case "m": return new man(); case "w": return new woman(); default: return null; } } } //默认1调用方式,需要实例化工厂类,且无法解决类更名需要改动很多地方的缺点 /*$f=new factory(); $man=$f->getInstance('man'); $man->display(); $woman=$f->getInstance('woman'); $woman->display();*/ //默认2调用模式,无需实例化工厂类,但无法解决类更名需要改动很多地方的缺点 /*$man=factory::getInstance('man'); $man->display(); $woman=factory::getInstance('woman'); $woman->display();*/ //封装匿名调用模式 当man / woman类名变更时,可以很方便的更改,并且可隐藏类的真实名称 $man=factory::getInstance('m'); $man->display(); $woman=factory::getInstance('w'); $woman->display();
上一篇: PHP 面向对象单例模式记录...
下一篇: mysql 模型记录...