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 相关文章推荐
MySql 按时间段查询数据方法(实例说明)
Nov 02 PHP
PHP中usort在值相同时改变原始位置问题的解决方法
Nov 27 PHP
解析PHP SPL标准库的用法(遍历目录,查找固定条件的文件)
Jun 18 PHP
Function eregi is deprecated (解决方法)
Jun 21 PHP
PHP图像处理之imagecreate、imagedestroy函数介绍
Nov 19 PHP
PHP调用.NET的WebService 简单实例
Mar 27 PHP
最新版本PHP 7 vs HHVM 多角度比较
Feb 14 PHP
PHP is_array() 检测变量是否是数组的实现方法
Jun 13 PHP
php安装dblib扩展,连接mssql的具体步骤
Mar 02 PHP
yii2局部关闭(开启)csrf的验证的实例代码
Jul 10 PHP
PHP编译configure时常见错误的总结
Aug 17 PHP
PHP Socket网络操作类定义与用法示例
Aug 30 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面向对象三大特点学习(充分理解抽象、封装、继承、多态)
2012/05/07 PHP
php创建多级目录的方法
2015/03/24 PHP
PHP实现自动发送邮件功能代码(qq 邮箱)
2017/08/18 PHP
详解php用static方法的原因
2018/09/12 PHP
Laravel框架实现的使用smtp发送邮件功能示例
2019/03/12 PHP
jQuery的控件及事件(输入控件及回车事件)使用示例
2013/07/25 Javascript
JS中把字符转成ASCII值的函数示例代码
2013/11/21 Javascript
Jquery遍历节点的方法小集
2014/01/22 Javascript
纯JS实现动态时间显示代码
2014/02/08 Javascript
JS实现往下不断流动网页背景的方法
2015/02/27 Javascript
JavaScript中常见获取元素的方法汇总
2015/03/04 Javascript
12种JavaScript常用的MVC框架比较分析
2015/11/16 Javascript
JS获取时间的相关函数及时间戳与时间日期之间的转换
2016/02/04 Javascript
浅析JavaScript Array和string的转换(推荐)
2016/05/20 Javascript
Vue.js每天必学之构造器与生命周期
2016/09/05 Javascript
BootStrap Fileinput的使用教程
2016/12/30 Javascript
Input文本框随着输入内容多少自动延伸的实现
2017/02/15 Javascript
微信小程序获取循环元素id以及wx.login登录操作
2017/08/17 Javascript
CentOS环境中MySQL修改root密码方法
2018/01/07 Javascript
Vue+ElementUI实现表单动态渲染、可视化配置的方法
2018/03/07 Javascript
vue之组件内监控$store中定义变量的变化详解
2019/11/08 Javascript
Vue的click事件防抖和节流处理详解
2019/11/13 Javascript
微信分享invalid signature签名错误踩过的坑
2020/04/11 Javascript
vue+element UI实现树形表格
2020/12/29 Vue.js
Python自然语言处理之词干,词形与最大匹配算法代码详解
2017/11/16 Python
Python设计模式之适配器模式原理与用法详解
2019/01/15 Python
使用matlab或python将txt文件转为excel表格
2019/11/01 Python
Python面向对象之私有属性和私有方法应用案例分析
2019/12/31 Python
Python Pandas数据分析工具用法实例
2020/11/05 Python
英国最大的海报商店:GB Posters
2018/03/20 全球购物
如何清空Session
2015/02/23 面试题
英语专业学生的自我评价
2013/12/30 职场文书
青年文明号事迹材料
2014/01/18 职场文书
迎八一活动主题
2014/01/31 职场文书
党员教师工作决心书
2014/03/13 职场文书
Mysql分库分表之后主键处理的几种方法
2022/02/15 MySQL