PHP高级对象构建 工厂模式的使用


Posted in PHP onFebruary 05, 2012

PHP设计模式工厂模式的使用方法

<?php 
/* 
* 每日练习 PHP设计模式工厂模式的使用方法 
* PHP工厂模式不难理解,顾名思义,就是一个加工厂,然后工厂是制造产品的,只要制造产品 
* 就必须有几个要素:"方法","模型","工厂车间"。 
*/ 
/*第一种示例 普通工厂模式 
* */ 
abstract class model {//产品模型 
abstract function getNames(); 
} 
class zhangsan extends model {//产品实例 
function getNames(){ 
return "my name is zhengsan"; 
} 
} 
class lisi extends model{//产品实例 
function getNames(){ 
return "my name is lisi"; 
} 
} 
abstract class gongchangModel {//工厂模型 
abstract function getZhangsan(); 
abstract function getLisi(); 
} 
class gongchang extends gongchangModel{//工厂实例 
function getZhangsan(){ 
return new zhangsan(); 
} 
function getLisi(){ 
return new lisi(); 
} 
} 
$gongchang=new gongchang();//实例化工厂 
$zhangsan=$gongchang->getZhangsan();//制造产品 
echo $zhangsan->getNames();//产品输出功能 
?>

之前我写去关于工厂设计模式的文章,实际上,工厂模式包含普通工厂模式和抽象工厂模式,但是,不管是什么工厂模式,它们都是有一个作用,那就是生成对象。
好了,那我们用下面最最简单的例子,再把PHP设计模式中的厂模式再演示一下。
我自己总结了一下,工厂模式的三个要素:
一、产品模型
二、产品实例
三、工厂车间
<?php 
abstract class prModel {//产品模型 
abstract function link(); 
} 
class webLink extends prModel{//实例一个产品 
public function link(){ 
echo "3water.com"; 
} 
} 
class gongchang {//工厂 
static public function createLink (){ 
return new webLink(); 
} 
} 
$weblink=gongchang::createLink();//通过工厂制造一个对象 
$weblink->link();//输出 3water.com 
?>

以上方法,就简单的说明了工厂类的使用方法。关注面向对象
PHP 相关文章推荐
php数组对百万数据进行排除重复数据的实现代码
Jun 08 PHP
php excel类 phpExcel使用方法介绍
Aug 21 PHP
linux下为php添加curl扩展的方法
Jul 29 PHP
ThinkPHP文件上传实例教程
Aug 22 PHP
php实现读取内存顺序号
Mar 29 PHP
Yii获取当前url和域名的方法
Jun 08 PHP
你不知道的文件上传漏洞php代码分析
Sep 29 PHP
在php7中MongoDB实现模糊查询的方法详解
May 03 PHP
php面向对象的用户登录身份验证
Jun 08 PHP
PHP实现下载远程图片保存到本地的方法
Jun 19 PHP
php使用curl模拟多线程实现批处理功能示例
Jul 25 PHP
php使用自带dom扩展进行元素匹配的原理解析
May 29 PHP
PHP备份数据库生成SQL文件并下载的函数代码
Feb 05 #PHP
PHP将整个网站生成HTML纯静态网页的方法总结
Feb 05 #PHP
php 搜索框提示(自动完成)实例代码
Feb 05 #PHP
PHP持久连接mysql_pconnect()函数使用介绍
Feb 05 #PHP
PHP测试程序运行时间的类
Feb 05 #PHP
PHP设计模式 注册表模式
Feb 05 #PHP
PHP设计模式 注册表模式(多个类的注册)
Feb 05 #PHP
You might like
第四节 构造函数和析构函数 [4]
2006/10/09 PHP
PHP base64+gzinflate压缩编码和解码代码
2008/10/03 PHP
CI使用Tank Auth转移数据库导致密码用户错误的解决办法
2014/06/12 PHP
PHP实现的带超时功能get_headers函数
2015/02/10 PHP
PHP正则获取页面所有图片地址
2016/03/23 PHP
Smarty高级应用之缓存操作技巧分析
2016/05/14 PHP
PHP实现断点续传乱序合并文件的方法
2018/09/06 PHP
PHP yield关键字功能与用法分析
2019/01/03 PHP
PHP PDOStatement::nextRowset讲解
2019/02/01 PHP
PHP CURL中传递cookie的方法步骤
2019/05/09 PHP
JQuery 自定义CircleAnimation,Animate方法学习笔记
2011/07/10 Javascript
js模拟hashtable的简单实例
2014/03/06 Javascript
JQuery性能优化的几点建议
2014/05/14 Javascript
一个JavaScript处理textarea中的字符成每一行实例
2014/09/22 Javascript
JavaScript实现阿拉伯数字和中文数字互相转换
2016/06/12 Javascript
JQ中$(window).load和$(document).ready区别与执行顺序
2017/03/01 Javascript
解决使用Vue.js显示数据的时,页面闪现原始代码的问题
2018/02/11 Javascript
JS实现将对象转化为数组的方法分析
2019/01/21 Javascript
vue2配置scss的方法步骤
2019/06/06 Javascript
微信小程序实现手势滑动效果
2019/08/26 Javascript
VUE项目初建和常见问题总结
2019/09/12 Javascript
微信小程序实现多行文字超出部分省略号显示功能
2019/10/23 Javascript
基于JavaScript实现简单抽奖功能代码实例
2020/10/20 Javascript
用PyQt进行Python图形界面的程序的开发的入门指引
2015/04/14 Python
python2.6.6如何升级到python2.7.14
2018/04/08 Python
Python实现读取SQLServer数据并插入到MongoDB数据库的方法示例
2018/06/09 Python
在python中画正态分布图像的实例
2019/07/08 Python
HTML5等待加载动画效果
2017/07/27 HTML / CSS
上学迟到的检讨书
2014/01/11 职场文书
实习指导老师评语
2014/04/26 职场文书
啦啦队口号大全
2014/06/16 职场文书
2014校长四风问题对照检查材料思想汇报
2014/09/16 职场文书
2014年化妆品销售工作总结
2014/12/01 职场文书
2015年度公共机构节能工作总结
2015/05/26 职场文书
MySQL Shell import_table数据导入的实现
2021/08/07 MySQL
python字符串拼接.join()和拆分.split()详解
2021/11/23 Python