首页 / PHP / 关于使用php工厂模式的好处分析
关于使用php工厂模式的好处分析
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了关于使用php工厂模式的好处分析,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2185字,纯文字阅读大概需要4分钟。
内容图文
![关于使用php工厂模式的好处分析](/upload/InfoBanner/zyjiaocheng/142/93836bb278154ea5b04ffd06c48963ba.jpg)
一般我们实例化一个类会给它一些参数以便在其构析的时候可以根据不同的参数反馈出我们需要的结果。
举例说明,以下是一个User类,非常简单:
代码如下:
<?php interface IUser{ function getName(); function getAge(); } class User implements IUser{ protected $_name; protected $_age; function construct($name, $age){ $this->_name = $name; $this->_age = (int)$age; } function getName(){ return $this->_name; } function getAge(){ return $this->_age; } } ?>
我们如果要实例化这个类就要这样:
$u = new User(‘小明‘,19);
一般如果这个类很少使用,那么这样做没什么太大影响,也非常好。
突然我想给这个类增加一个归类,把小明放入学生组,修改下类代码实现非常容易,但如果这个类在我们想修改之前在很多文件地方多次的实例化了,那么想为其增加一个参数就会变的非常烦琐,因为需要替换成:
$u = new User(‘小明‘,19,‘学生‘);
当然我们也可以通过在construct函数中进行默认值设置来避免这种重复劳动,但事实上从代码优雅角度来说这样很不好,设想我们有一个工厂方法可以通过一个标识来对应一组参数,并把这个参数存放在某个文本文档或是直接以数组的形式存放在工厂类中,我们在调用User类的时候就会变的轻松许多,即便是需要增减参数属性也不需要到处进行代码的替换,下面就是一个工厂类(也可以直接将方法存放在User类)
代码如下:
interface IUser{ function getName(); function getAge(); } class User implements IUser{ protected $_group; protected $_name; protected $_age; function construct($name, $age, $group){ $this->_group = $group; $this->_name = $name; $this->_age = (int)$age; } function getName(){ return $this->_name; } function getAge(){ return $this->_age; } } class Fuser{ private static $group = array( array(‘小明‘,19,‘学生‘), array(‘小王‘,19,‘学生‘) ); static function create($id){ list($name, $age, $group) = self::$group[(int)$id]; return new User($name, $age, $group); } } echo Fuser::create(0)->getName();
得到的结果应该是输出“小明”。
总结:
相信小伙伴们对php工厂模式的使用好处有了一定的理解,可以根据本文所学的东西,实践在自己的工作中!
相关推荐:
PHP工厂模式的三种形式的示例代码详解
以上就是关于使用php工厂模式的好处分析的详细内容,更多请关注Gxl网其它相关文章!
内容总结
以上是互联网集市为您收集整理的关于使用php工厂模式的好处分析全部内容,希望文章能够帮你解决关于使用php工厂模式的好处分析所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。