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入门
Oct 09 PHP
PHP CodeBase:将时间显示为&quot;刚刚&quot;&quot;n分钟/小时前&quot;的方法详解
Jun 06 PHP
php使用mb_check_encoding检查字符串在指定的编码里是否有效
Nov 07 PHP
PHP数字字符串左侧补0、字符串填充和自动补齐的几种方法
May 10 PHP
PHP+jquery+ajax实现即时聊天功能实例
Dec 23 PHP
PHP strtotime函数用法、实现原理和源码分析
Feb 04 PHP
php微信公众平台开发之获取用户基本信息
Aug 17 PHP
PHP实现GIF图片验证码
Nov 04 PHP
php阳历转农历优化版
Aug 08 PHP
PHP构造函数与析构函数用法示例
Sep 28 PHP
PHP的cookie与session原理及用法详解
Sep 27 PHP
laravel数据库查询结果自动转数组修改实例
Feb 27 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递归实现无限分类 格式化数组的详解
2013/06/08 PHP
Thinkphp3.2实用篇之计算型验证码示例
2017/02/09 PHP
如何实现浏览器上的右键菜单
2006/07/10 Javascript
Javascript YUI 读码日记之 YAHOO.util.Dom - Part.3
2008/03/22 Javascript
javascript 添加和移除函数的通用方法
2009/10/20 Javascript
Javascript图像处理—虚拟边缘介绍及使用方法
2012/12/27 Javascript
页面使用密码保护代码
2013/04/10 Javascript
如何解决Jquery库及其他库之间的$命名冲突
2013/09/15 Javascript
理解Javascript闭包
2013/11/01 Javascript
jQuery表格插件datatables用法详解
2020/11/23 Javascript
jQuery实现的右下角广告窗体跟随效果示例
2016/09/16 Javascript
深入理解javascript的getTime()方法
2017/02/16 Javascript
jquery处理checkbox(复选框)是否被选中实例代码
2017/06/12 jQuery
js实现京东轮播图效果
2017/06/30 Javascript
ES6之模版字符串的具体使用
2018/05/17 Javascript
微信小程序框架wepy之动态控制类名
2018/09/14 Javascript
使用pkg打包ThinkJS项目的方法步骤
2019/12/30 Javascript
vue实现div单选多选功能
2020/07/16 Javascript
[08:04]TI4西雅图DOTA2前线报道 海涛探访各路人马
2014/07/09 DOTA
[02:31]2018年度DOTA2最具人气选手-完美盛典
2018/12/16 DOTA
python判断完全平方数的方法
2018/11/13 Python
python Django编写接口并用Jmeter测试的方法
2019/07/31 Python
Python sep参数使用方法详解
2020/02/12 Python
浅谈Pycharm最有必要改的几个默认设置项
2020/02/14 Python
编写python代码实现简单抽奖器
2020/10/20 Python
python中用ggplot绘制画图实例讲解
2021/01/26 Python
基于Html5 canvas实现裁剪图片和马赛克功能及又拍云上传图片 功能
2019/07/09 HTML / CSS
Ticketmaster德国票务网站:购买音乐会和体育等门票
2016/11/14 全球购物
英国山地公路自行车商店:Tweeks Cycles
2018/03/16 全球购物
Stella McCartney官网:成衣、包袋、香水、内衣、童装及Adidas系列
2018/12/20 全球购物
DBA数据库管理员JAVA程序员架构师必看
2016/02/07 面试题
土木工程毕业生自荐信
2013/11/12 职场文书
2015年宣传思想工作总结
2015/05/22 职场文书
青年岗位能手事迹材料(2016推荐版)
2016/03/01 职场文书
解析原生JS getComputedStyle
2021/05/25 Javascript
怎么禁用Win11输入法 最新Win11输入法关闭教程
2022/08/05 数码科技