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 裁剪图片成固定大小代码方法
Sep 09 PHP
php下封装较好的数字分页方法
Nov 23 PHP
php环境配置之CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI比较?
Oct 17 PHP
php遍历所有文件及文件夹的方法深入解析
Jun 08 PHP
php 批量生成html,txt文件的实现代码
Jun 26 PHP
php调用c接口无错版介绍
Mar 11 PHP
php实现复制移动文件的方法
Jul 29 PHP
PHP socket 模拟POST 请求实例代码
Jul 18 PHP
基于PHP实现用户注册登录功能
Oct 14 PHP
smarty模板数学运算示例
Dec 11 PHP
PHP代码重构方法漫谈
Apr 17 PHP
TP5框架实现一次选择多张图片并预览的方法示例
Apr 04 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
星际RPG字典
2020/03/04 星际争霸
php将时间差转换为字符串提示
2011/09/07 PHP
PHP错误处理函数register_shutdown_function使用示例
2017/07/03 PHP
Laravel框架基于ajax和layer.js实现无刷新删除功能示例
2019/01/17 PHP
我的Node.js学习之路(四)--单元测试
2014/07/06 Javascript
node.js中的fs.lchmod方法使用说明
2014/12/16 Javascript
JavaScript修改浏览器tab标题小技巧
2015/01/06 Javascript
JS日期格式化之javascript Date format
2015/10/01 Javascript
基于jquery实现简单的分页控件
2016/03/17 Javascript
JavaScript中三种常见的排序方法
2017/02/24 Javascript
Vue.js仿微信聊天窗口展示组件功能
2017/08/11 Javascript
javaScript canvas实现(画笔大小 颜色 橡皮的实例)
2017/11/28 Javascript
vue中使用refs定位dom出现undefined的解决方法
2017/12/21 Javascript
微信小程序如何获取用户信息
2018/01/26 Javascript
Javascript Dom元素获取和添加详解
2019/09/24 Javascript
基于form-data请求格式详解
2019/10/29 Javascript
vue 中url 链接左边的小图标更改问题
2019/12/30 Javascript
Vue2.0 ES6语法降级ES5的操作
2020/10/30 Javascript
[02:41]2015国际邀请赛中国区预选赛观战指南
2015/05/20 DOTA
[03:49]2016完美“圣”典风云人物:AMS专访
2016/12/06 DOTA
python连接MySQL数据库实例分析
2015/05/12 Python
python的random模块及加权随机算法的python实现方法
2017/01/04 Python
啥是佩奇?使用Python自动绘画小猪佩奇的代码实例
2019/02/20 Python
用Python实现将一张图片分成9宫格的示例
2019/07/05 Python
python采集百度搜索结果带有特定URL的链接代码实例
2019/08/30 Python
python dumps和loads区别详解
2020/02/04 Python
Python 日期时间datetime 加一天,减一天,加减一小时一分钟,加减一年
2020/04/16 Python
澳大利亚第一的设计师礼服租赁网站:GlamCorner
2017/08/13 全球购物
优秀班组长事迹
2014/05/31 职场文书
2014年党员学习“三严三实”思想汇报
2014/09/15 职场文书
局领导领导班子四风对照检查材料
2014/09/27 职场文书
2015年保育员个人工作总结
2015/05/13 职场文书
经典祝酒词大全
2015/08/12 职场文书
大学学习委员竞选稿
2015/11/20 职场文书
民事纠纷协议书
2016/03/23 职场文书
MySQL 分页查询的优化技巧
2021/05/12 MySQL