PHP工厂模式简单实现方法示例


Posted in PHP onMay 23, 2018

本文实例讲述了PHP工厂模式简单实现方法。分享给大家供大家参考,具体如下:

工厂模式是一种类,建立了一个工厂来根据所需来创建对象,这种方式在多态性编程中是很重要的,允许动态替换类,修改配置等。

php示例代码如下:

//-----------------------------工厂模式-------------------------//
class A{
 public $class;  // public $class = $_GET['c']; //类名
 public $method; // public $method = $_GET['m']; //方法
 public function __construct($class,$method){
  $this->class = ucfirst(strtolower($class)); //对类名进行安全处理
  $this->method = strtolower($method);  //对方法名进行安全处理
  $this->work($this->class,$this->method);
 }
 public function work($class,$method){
  // 把文件命名成 (类名.class.php的形式),就可以通过类名找到文件。
  //include '文件名(文件在别的地方)';  #例如 include './index.php'; 引入文件然后实例化类。
  $c = new $class; //实例化类
  $c->$method(); //访问类的方法
 }
}
class B{
 public function ba(){
  echo '实例化后的ba方法<br>';
 }
 public function bb(){
  echo '实例化后的bb方法<br>';
 }
}
class C{
 public function ca(){
  echo '实例化后的ca方法<br>';
 }
 public function cb(){
  echo '实例化后的cb方法<br>';
 }
}
//工厂模式的实现
$a = new A('b','ba');  // 通过类访问方法
$a = new A('C','ca');  // 通过类访问方法

运行结果:

实例化后的ba方法
实例化后的ca方法

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
PHP时间戳使用实例代码
Jun 07 PHP
用PHP查询搜索引擎排名位置的代码
Jan 05 PHP
PHP print类函数使用总结
Jun 25 PHP
php设计模式之观察者模式的应用详解
May 21 PHP
领悟php接口中interface存在的意义
Jun 27 PHP
如何使用PHP批量去除文件UTF8 BOM信息
Aug 05 PHP
yii框架配置默认controller和action示例
Apr 30 PHP
PHP实现Javascript中的escape及unescape函数代码分享
Feb 10 PHP
微信公众号开发客服接口实例代码
Oct 21 PHP
Laravel5中Cookie的使用详解
May 03 PHP
基于Laravel实现的用户动态模块开发
Sep 21 PHP
利用ajax+php实现商品价格计算
Mar 31 PHP
PHP递归遍历文件夹去除注释并压缩php源代码的方法示例
May 23 #PHP
PHP实现将多个文件压缩成zip格式并下载到本地的方法示例
May 23 #PHP
PHP实现的mysql读写分离操作示例
May 22 #PHP
PHP基于pdo的数据库操作类【可支持mysql、sqlserver及oracle】
May 21 #PHP
PHP+MariaDB数据库操作基本技巧备忘总结
May 21 #PHP
PhpStorm本地断点调试的方法步骤
May 21 #PHP
PHP自动识别当前使用移动终端
May 21 #PHP
You might like
使用PHPMailer实现邮件发送代码分享
2014/10/23 PHP
PHP开发注意事项总结
2015/02/04 PHP
php比较两个字符串长度的方法
2015/07/13 PHP
php array_keys 返回数组的键名
2016/10/25 PHP
PHP实现mysqli批量执行多条语句的方法示例
2017/07/22 PHP
PHP递归统计系统中代码行数
2019/09/19 PHP
JS 判断undefined的实现代码
2009/11/26 Javascript
JavaScript实现统计文本框Textarea字数增强用户体验
2012/12/21 Javascript
jquery scroll()区分横向纵向滚动条的方法
2014/04/04 Javascript
bootstrap布局中input输入框右侧图标点击功能
2016/05/16 Javascript
NodeJS 实现手机短信验证模块阿里大于功能
2017/06/19 NodeJs
在一般处理程序(ashx)中弹出js提示语
2017/08/16 Javascript
基于Angularjs-router动态改变Title值的问题
2018/08/30 Javascript
js实现窗口全屏示例详解
2019/09/17 Javascript
layui实现form表单同时提交数据和文件的代码
2019/10/25 Javascript
JS+HTML实现自定义上传图片按钮并显示图片功能的方法分析
2020/02/12 Javascript
[04:27]2014DOTA2国际邀请赛 NAVI战队官方纪录片
2014/07/21 DOTA
[44:26]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#4EG VS Fnatic第二局
2016/03/03 DOTA
Python中字典(dict)和列表(list)的排序方法实例
2014/06/16 Python
python+django快速实现文件上传
2016/10/24 Python
python中文件变化监控示例(watchdog)
2017/10/16 Python
python、java等哪一门编程语言适合人工智能?
2017/11/13 Python
cmd运行python文件时对结果进行保存的方法
2018/05/16 Python
pytorch对可变长度序列的处理方法详解
2018/12/08 Python
Pandas之groupby( )用法笔记小结
2019/07/23 Python
python读取与处理netcdf数据方式
2020/02/14 Python
详解python UDP 编程
2020/08/24 Python
Python3.7安装PyQt5 运行配置Pycharm的详细教程
2020/10/15 Python
全网最全python库selenium自动化使用详细教程
2021/01/12 Python
移动通信行业实习自我鉴定
2013/09/28 职场文书
后勤部长岗位职责
2013/12/14 职场文书
个人简历中自我评价
2014/02/11 职场文书
我的中国心演讲稿
2014/09/04 职场文书
校园会短篇的广播稿
2014/10/21 职场文书
2015年司机年终工作总结
2015/05/14 职场文书
Win11 BitLocker 驱动器加密
2022/04/19 数码科技