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 相关文章推荐
实例(Smarty+FCKeditor新闻系统)
Jan 02 PHP
php之字符串变相相减的代码
Mar 19 PHP
PHP 文件上传进度条的两种实现方法的代码
Nov 25 PHP
php数组函数序列之array_sum() - 计算数组元素值之和
Oct 29 PHP
php中一个完整表单处理实现代码
Nov 10 PHP
解析PHP可变函数的经典用法
Jun 20 PHP
PHP学习笔记(二) 了解PHP的基本语法以及目录结构
Aug 04 PHP
PHP读取汉字的点阵数据
Jun 22 PHP
分享50个提高PHP执行效率的技巧
Dec 26 PHP
PHP 无限级分类
May 04 PHP
ThinkPHP下表单令牌错误与解决方法分析
May 20 PHP
PHP实现笛卡尔积算法的实例讲解
Dec 22 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实现短域名互转
2013/07/05 PHP
各种快递查询--Api接口
2016/04/26 PHP
PHP Oauth授权和本地加密实现方法
2016/08/12 PHP
php获取文章内容第一张图片的方法示例
2017/07/03 PHP
php简单读取.vcf格式文件的方法示例
2017/09/02 PHP
javascript 对象的定义方法
2007/01/10 Javascript
javascript Ext JS 状态默认存储时间
2009/02/15 Javascript
input的focus方法使用
2010/03/13 Javascript
jquery插件如何使用 jQuery操作Cookie插件使用介绍
2012/12/15 Javascript
jQuery写的日历(包括日历的样式及功能)
2013/04/23 Javascript
jquery网页回到顶部效果(图标渐隐,自写)
2014/06/16 Javascript
jQuery mobile类库使用时加载导航历史的方法简介
2015/12/04 Javascript
快速解决js动态改变dom元素属性后页面及时渲染的问题
2016/07/06 Javascript
新入门node.js必须要知道的概念(必看篇)
2016/08/10 Javascript
JS对象深度克隆实例分析
2017/03/16 Javascript
jQuery AJAX 方法success()后台传来的4种数据详解
2018/08/08 jQuery
微信小程序自定义select下拉选项框组件的实现代码
2018/08/28 Javascript
Echarts地图添加引导线效果(labelLine)
2019/09/30 Javascript
详解如何在Javascript和Sass之间共享变量
2019/11/13 Javascript
vue el-table实现自定义表头
2019/12/11 Javascript
使用JavaScript实现网页秒表功能(含开始、暂停、继续、重置功能)
2020/06/05 Javascript
[06:33]DOTA2亚洲邀请赛小组赛第二日 TOP10精彩集锦
2015/01/31 DOTA
由浅入深讲解python中的yield与generator
2017/04/05 Python
Python3.x爬虫下载网页图片的实例讲解
2018/05/22 Python
python+opencv 读取文件夹下的所有图像并批量保存ROI的方法
2019/01/10 Python
python框架Django实战商城项目之工程搭建过程图文详解
2020/03/09 Python
新加坡网上花店:FlowerAdvisor新加坡
2018/10/05 全球购物
广告学专业毕业生自荐信
2013/09/24 职场文书
电子商务个人自荐信
2013/12/12 职场文书
党课学习思想汇报
2014/01/02 职场文书
个人对照检查材料思想汇报(四风问题)
2014/09/25 职场文书
工人先进事迹材料
2014/12/26 职场文书
财政局个人年终总结
2015/03/03 职场文书
廉政承诺书2015
2015/04/28 职场文书
银行中层干部培训心得体会
2016/01/11 职场文书
优秀范文:《但愿人长久》教学反思3篇
2019/10/24 职场文书