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求最大子序列和的算法实现
Jun 24 PHP
19个超实用的PHP代码片段
Mar 14 PHP
PHP中使用CURL获取页面title例子
Jan 07 PHP
PHP实现微信发红包程序
Aug 24 PHP
php上传大文件失败的原因及应对策略
Oct 20 PHP
PHP的Laravel框架中使用消息队列queue及异步队列的方法
Mar 21 PHP
PHP实现清除MySQL死连接的方法
Jul 23 PHP
PHP回调函数概念与用法实例分析
Nov 03 PHP
PHP里的$_GET数组介绍
Mar 22 PHP
PHP二维索引数组的遍历实例分析【2种方式】
Jun 24 PHP
laravel框架模型、视图与控制器简单操作示例
Oct 10 PHP
laravel 解决paginate查询多个字段报错的问题
Oct 22 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
ThinkPHP文件上传实例教程
2014/08/22 PHP
PHP易混淆函数的区别及用法汇总
2014/11/22 PHP
php+mysql实现用户注册登陆的方法
2015/01/03 PHP
Zend Framework教程之Loader以及PluginLoader用法详解
2016/03/09 PHP
php断点续传之文件分割合并详解
2016/12/13 PHP
php获取POST数据的三种方法实例详解
2016/12/20 PHP
[原创]后缀就扩展名为js的文件是什么文件
2007/12/06 Javascript
ajax 缓存 问题 requestheader
2010/08/01 Javascript
IE的有条件注释判定IE版本详解(附实例代码)
2012/01/04 Javascript
JS图片无缝滚动(简单利于使用)
2013/06/17 Javascript
javascript unicode与GBK2312(中文)编码转换方法
2013/11/14 Javascript
jquery获得同源iframe内body下标签的值的方法
2014/09/25 Javascript
ECMAScript 5严格模式(Strict Mode)介绍
2015/03/02 Javascript
Nodejs获取网络数据并生成Excel表格
2020/03/31 NodeJs
JS上传组件FileUpload自定义模板的使用方法
2016/05/10 Javascript
用angular实现多选按钮的全选与反选实例代码
2017/05/23 Javascript
node.js博客项目开发手记
2018/03/16 Javascript
微信小程序实现左右联动的实战记录
2018/07/05 Javascript
nodejs(officegen)+vue(axios)在客户端导出word文档的方法
2018/07/31 NodeJs
vue中的计算属性实例详解
2018/09/19 Javascript
详解在Python和IPython中使用Docker
2015/04/28 Python
TensorFlow 模型载入方法汇总(小结)
2018/06/19 Python
详解Python 爬取13个旅游城市,告诉你五一大家最爱去哪玩?
2019/05/07 Python
Python3常用内置方法代码实例
2019/11/18 Python
使用CSS3制作倾斜导航条和毛玻璃效果
2017/09/12 HTML / CSS
英国最大的邮寄种子和植物公司:Thompson & Morgan
2017/09/21 全球购物
一封普通求职者的求职信
2013/11/20 职场文书
军训自我鉴定200字
2014/02/13 职场文书
操行评语大全
2014/04/30 职场文书
2014年专项整治工作总结
2014/11/17 职场文书
离婚协议书的范本
2015/01/27 职场文书
上下班时间调整通知
2015/04/23 职场文书
爱国主义电影观后感
2015/06/18 职场文书
干部培训简讯
2015/07/20 职场文书
Python中Selenium对Cookie的操作方法
2021/07/09 Python
Windows Server 2012配置DNS服务器的方法
2022/04/29 Servers