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 print EOF实现方法
May 21 PHP
windows下zendframework项目环境搭建(通过命令行配置)
Dec 06 PHP
php中删除字符串中最先出现某个字符的实现代码
Feb 03 PHP
基于Zend的Captcha机制的应用
May 02 PHP
浅析php过滤html字符串,防止SQL注入的方法
Jul 02 PHP
使用php检测用户当前使用的浏览器是否为IE浏览器
Dec 03 PHP
PHP对文件进行加锁、解锁实例
Jan 23 PHP
Laravel5中contracts详解
Mar 02 PHP
php动态函数调用方法
May 21 PHP
php编程每天必学之验证码
Mar 03 PHP
几行代码轻松实现PHP文件打包下载zip
Mar 01 PHP
php实现不通过扩展名准确判断文件类型的方法【finfo_file方法与二进制流】
Apr 18 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
PHP的宝库目录--PEAR
2006/10/09 PHP
php使用post数组的键值创建同名变量并赋值的方法
2015/04/03 PHP
PHP后端银联支付及退款实例代码
2017/06/23 PHP
采用CSS和JS,刚好我最近有个站点要用到下拉菜单!
2006/06/26 Javascript
JavaScript 创建运动框架的实现代码
2013/05/08 Javascript
判断一个变量是数组Array类型的方法
2013/09/16 Javascript
ExtJS中设置下拉列表框不可编辑的方法
2014/05/07 Javascript
一款基jquery超炫的动画导航菜单可响应单击事件
2014/11/02 Javascript
js实现点击链接后窗口缩小并居中的方法
2015/03/02 Javascript
JavaScript包装对象使用详解
2015/07/09 Javascript
异步JavaScript编程中的Promise使用方法
2015/07/28 Javascript
text-align:justify实现文本两端对齐 兼容IE
2015/08/19 Javascript
JavaScript中iframe实现局部刷新的几种方法汇总
2016/01/06 Javascript
mvc中form表单提交的三种方式(推荐)
2016/08/10 Javascript
原生js实现手风琴功能(支持横纵向调用)
2017/01/13 Javascript
js+css3实现旋转效果
2017/01/20 Javascript
详解如何在NodeJS项目中优雅的使用ES6
2017/04/22 NodeJs
小程序Request的另类用法详解
2019/08/09 Javascript
javascript局部自定义鼠标右键菜单
2020/12/08 Javascript
[02:37]TI8勇士令状不朽珍藏II视频展示
2018/06/23 DOTA
使用python实现tcp自动重连
2017/07/02 Python
python中redis查看剩余过期时间及用正则通配符批量删除key的方法
2018/07/30 Python
设置python3为默认python的方法
2018/10/31 Python
python实现tail实时查看服务器日志示例
2019/12/24 Python
python3实现网页版raspberry pi(树莓派)小车控制
2020/02/12 Python
Python urlencode和unquote函数使用实例解析
2020/03/31 Python
python 使用while循环输出*组成的菱形实例
2020/04/12 Python
分享一个python的aes加密代码
2020/12/22 Python
使用CSS3制作一个简单的进度条(demo)
2017/05/23 HTML / CSS
Wilson体育用品官网:美国著名运动器材品牌
2019/05/12 全球购物
戴尔英国翻新电脑和电子产品:Dell UK Refurbished Computers
2019/07/30 全球购物
大学生军训感想
2014/02/16 职场文书
保密工作责任书
2014/04/16 职场文书
委托证明书
2014/09/17 职场文书
优秀英文求职信范文
2015/03/19 职场文书
2015年社会治安综合治理工作总结
2015/04/10 职场文书