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 相关文章推荐
简单的页面缓冲技术
Oct 09 PHP
PHP配置心得包含MYSQL5乱码解决
Nov 20 PHP
利用PHP制作简单的内容采集器的代码
Nov 28 PHP
phpmyadmin MySQL 加密配置方法
Jul 05 PHP
mysql_num_rows VS COUNT 效率问题分析
Apr 23 PHP
php学习之 循环结构实现代码
Jun 09 PHP
PHP动态生成指定大小随机图片的方法
Mar 25 PHP
PHP中模糊查询并关联三个select框
Jun 19 PHP
PHP切割汉字的常用方法实例总结
Apr 27 PHP
PHP容器类的两种实现方式示例
Jul 24 PHP
Thinkphp5 如何隐藏入口文件index.php(URL重写)
Oct 16 PHP
php 解析非标准json、非规范json
Apr 01 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下使用curl模拟用户登陆的代码
2010/09/10 PHP
php旋转图片90度的方法
2013/11/07 PHP
laravel中命名路由的使用方法
2017/02/24 PHP
php简单随机字符串生成方法示例
2017/04/19 PHP
php文件上传类的分享
2017/07/06 PHP
php 比较获取两个数组相同和不同元素的例子(交集和差集)
2019/10/18 PHP
php实现快速对二维数组某一列进行组装的方法小结
2019/12/04 PHP
js tab 选项卡
2009/04/26 Javascript
基于jquery实现的定时显示与隐藏div广告的实现代码
2013/08/22 Javascript
利用jQuary实现文字浮动提示效果示例代码
2013/12/26 Javascript
Jquery EasyUI中弹出确认对话框以及加载效果示例代码
2014/02/13 Javascript
jquery学习总结(超级详细)
2014/09/04 Javascript
node.js中的fs.fchmodSync方法使用说明
2014/12/16 Javascript
jQuery简单实现对数组去重及排序操作实例
2017/10/31 jQuery
Django模板继承 extend标签实例代码详解
2019/05/16 Javascript
vue动态配置模板 'component is'代码
2019/07/04 Javascript
使用vue实现多规格选择实例(SKU)
2019/08/23 Javascript
JavaScript canvas动画实现时钟效果
2020/02/10 Javascript
Python的爬虫程序编写框架Scrapy入门学习教程
2016/07/02 Python
Python实现网络端口转发和重定向的方法
2016/09/19 Python
python实现微信发送邮件关闭电脑功能
2018/02/22 Python
python得到一个excel的全部sheet标签值方法
2018/12/10 Python
python PyAutoGUI 模拟鼠标键盘操作和截屏功能
2019/08/04 Python
对Django url的几种使用方式详解
2019/08/06 Python
python sorted函数的小练习及解答
2019/09/18 Python
HTML中使用SVG与SVG预定义形状元素介绍
2013/06/28 HTML / CSS
Camper鞋西班牙官方网上商店:西班牙马略卡岛的鞋类品牌
2019/03/14 全球购物
大学生写自荐信的技巧
2014/01/08 职场文书
社团2014年植树节活动总结
2014/03/11 职场文书
2014办公室副主任四风对照检查材料思想汇报
2014/09/20 职场文书
2014年销售部工作总结
2014/12/01 职场文书
班主任工作实习计划
2015/01/16 职场文书
办公室岗位职责
2015/02/04 职场文书
goland 设置project gopath的操作
2021/05/06 Golang
golang 实现并发求和
2021/05/08 Golang
总结Python常用的魔法方法
2021/05/25 Python