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实现首页链接查询 友情链接检查的代码
Jan 05 PHP
ThinkPHP的RBAC(基于角色权限控制)深入解析
Jun 17 PHP
解析posix与perl标准的正则表达式区别
Jun 17 PHP
PHP文件锁定写入实例解析
Jul 14 PHP
一个非常完美的读写ini格式的PHP配置类分享
Feb 12 PHP
PHP CURL 多线程操作代码实例
May 13 PHP
PHP批量去除BOM头代码分享
Jun 26 PHP
php+ajax+json 详解及实例代码
Dec 12 PHP
php批量修改表结构实例
May 24 PHP
阿里云Win2016安装Apache和PHP环境图文教程
Mar 11 PHP
PHP延迟静态绑定的深入讲解
Apr 02 PHP
ThinkPHP框架整合微信支付之刷卡模式图文详解
Apr 10 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
PHP中常用的转义函数
2014/02/28 PHP
php简单构造json多维数组的方法示例
2017/06/08 PHP
统计PHP目录中的文件数方法
2019/03/05 PHP
PHP常用工具函数小结【移除XSS攻击、UTF8与GBK编码转换等】
2019/04/27 PHP
极酷的javascirpt,让你随意编辑任何网页
2007/02/25 Javascript
Jquery倒数计时按钮setTimeout的实例代码
2013/07/04 Javascript
仿百度联盟对联广告实现代码
2014/08/30 Javascript
js/jquery判断浏览器的方法小结
2014/09/02 Javascript
JS判断网页广告是否被浏览器拦截过滤的代码
2015/04/05 Javascript
在vue组件中使用axios的方法
2018/03/16 Javascript
JavaScript基于遍历操作实现对象深拷贝功能示例
2019/03/05 Javascript
Vue全局loading及错误提示的思路与实现
2019/08/09 Javascript
浅析微信小程序自定义日历组件及flex布局最后一行对齐问题
2020/10/29 Javascript
原生js实现弹幕效果
2020/11/29 Javascript
python中类的一些方法分析
2014/09/25 Python
Python多进程并发(multiprocessing)用法实例详解
2015/06/02 Python
Python实现批量转换文件编码的方法
2015/07/28 Python
python编程使用selenium模拟登陆淘宝实例代码
2018/01/25 Python
Python函数定义及传参方式详解(4种)
2019/03/18 Python
Pandas之排序函数sort_values()的实现
2019/07/09 Python
Pytorch释放显存占用方式
2020/01/13 Python
基于FME使用Python过程图解
2020/05/13 Python
python 邮件检测工具mmpi的使用
2021/01/04 Python
基于css3的属性transition制作菜单导航效果
2015/09/01 HTML / CSS
CSS3中引入多种自定义字体font-face
2020/06/12 HTML / CSS
eVitamins日本:在线购买折扣维生素、补品和草药
2019/04/04 全球购物
美国家居装饰网上商店:Lulu & Georgia
2019/09/14 全球购物
英语系本科生个人求职信
2013/09/21 职场文书
最常使用的求职信
2014/05/25 职场文书
财务会计专业求职信
2014/06/09 职场文书
检讨书怎么写
2015/01/23 职场文书
旅游项目合作意向书
2015/05/08 职场文书
青年教师听课心得体会
2016/01/15 职场文书
保安辞职申请书应该怎么写?
2019/07/15 职场文书
MySQL 如何分析查询性能
2021/05/12 MySQL
Python中else的三种使用场景
2021/06/16 Python