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的论坛(6)
Oct 09 PHP
浅析PHP substr,mb_substr以及mb_strcut的区别和用法
Jun 21 PHP
PHP随机字符串生成代码(包括大小写字母)
Jun 24 PHP
PHP批量生成静态HTML的简单原理和方法
Apr 20 PHP
win7 64位系统 配置php最新版开发环境(php+Apache+mysql)
Aug 15 PHP
php+jQuery.uploadify实现文件上传教程
Dec 26 PHP
php each 返回数组中当前的键值对并将数组指针向前移动一步实例
Nov 22 PHP
php 生成加密公钥加密私钥实例详解
Jun 16 PHP
swoole和websocket简单聊天室开发
Nov 18 PHP
YII分模块加载路由的实现方法
Oct 01 PHP
关于php unset对json_encode的影响详解
Nov 14 PHP
PHP 技巧 * SVG 保存为图片(分享图生成)
Apr 02 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/09/14 PHP
ECSHOP在PHP5.5及高版本上报错的解决方法
2015/08/31 PHP
PHP实现打包zip并下载功能
2018/06/12 PHP
Django中通过定时任务触发页面静态化的处理方式
2018/08/29 PHP
给网站上的广告“加速”显示的方法
2007/04/08 Javascript
Html中JS脚本执行顺序简单举例说明
2010/06/19 Javascript
JS数组的遍历方式for循环与for...in
2014/07/31 Javascript
Node.js读写文件之批量替换图片的实现方法
2016/09/07 Javascript
用Vue.js实现监听属性的变化
2016/11/17 Javascript
jQuery实现的背景颜色渐变动画效果示例
2017/03/24 jQuery
JavaScript数据结构之二叉查找树的定义与表示方法
2017/04/12 Javascript
JS实现二叉查找树的建立以及一些遍历方法实现
2017/04/17 Javascript
老生常谈js数据类型
2017/08/03 Javascript
Popup弹出框添加数据实现方法
2017/10/27 Javascript
微信小程序实现获取自己所处位置的经纬度坐标功能示例
2017/11/30 Javascript
p5.js 毕达哥拉斯树的实现代码
2018/03/23 Javascript
JS实现的简单折叠展开动画效果示例
2018/04/28 Javascript
微信小程序调用摄像头隐藏式拍照功能
2018/08/22 Javascript
BootStrap中的模态框(modal,弹出层)功能示例代码
2018/11/02 Javascript
小程序调用微信支付的方法
2019/09/26 Javascript
javascript设计模式 ? 解释器模式原理与用法实例分析
2020/04/17 Javascript
vue-router 控制路由权限的实现
2020/09/24 Javascript
uniapp实现可滑动选项卡
2020/10/21 Javascript
[01:40]2014DOTA2国际邀请赛 三冰SOLO赛后采访恶搞
2014/07/09 DOTA
Python实现字典的遍历与排序功能示例
2017/12/23 Python
Python提取频域特征知识点浅析
2019/03/04 Python
Django 多表关联 存储 使用方法详解 ManyToManyField save
2019/08/09 Python
python+jinja2实现接口数据批量生成工具
2019/08/28 Python
Python+OpenCV实现旋转文本校正方式
2020/01/09 Python
使用Python第三方库pygame写个贪吃蛇小游戏
2020/03/06 Python
Python unittest discover批量执行代码实例
2020/09/08 Python
html5响应式开发自动计算fontSize的方法
2020/01/13 HTML / CSS
零件设计自荐信范文
2013/11/27 职场文书
《木笛》教学反思
2014/03/01 职场文书
保险经纪人求职信
2014/03/11 职场文书
啦啦队口号大全
2014/06/16 职场文书