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 相关文章推荐
有关phpmailer的详细介绍及使用方法
Jan 28 PHP
PHP关于htmlspecialchars、strip_tags、addslashes的解释
Jul 04 PHP
PHP中通过trigger_error触发PHP错误示例
Jun 23 PHP
详解PHP匿名函数与注意事项
Mar 29 PHP
PHP使用PDO操作数据库的乱码问题解决方法
Apr 08 PHP
thinkphp在低版本Nginx 下支持PATHINFO的方法分享
May 27 PHP
php实现带读写分离功能的MySQL类完整实例
Jul 28 PHP
PHP面向对象之事务脚本模式(详解)
Jun 07 PHP
php+jQuery实现的三级导航栏下拉菜单显示效果
Aug 10 PHP
PHP实现找出链表中环的入口节点
Jan 16 PHP
PHP反射学习入门示例
Jun 14 PHP
php慢查询日志和错误日志使用详解
Feb 27 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
基于asp+ajax和数据库驱动的二级联动菜单
2010/05/06 PHP
php基础教程 php内置函数实例教程
2012/08/21 PHP
CI(CodeIgniter)框架配置
2014/06/10 PHP
js实现的网站首页随机公告随机公告
2007/03/14 Javascript
javascript indexOf函数使用说明
2008/07/03 Javascript
面向对象Javascript核心支持代码分享
2012/05/23 Javascript
js操作iframe的一些方法介绍
2013/06/25 Javascript
js中数组排序sort方法的原理分析
2014/11/20 Javascript
纯js模拟div层弹性运动的方法
2015/07/27 Javascript
JS实现新浪微博效果带遮罩层的弹出框代码
2015/10/12 Javascript
解析JavaScript面向对象概念中的Object类型与作用域
2016/05/10 Javascript
JS返回只包含数字类型的数组实例分析
2016/12/16 Javascript
浅析BootStrap中Modal(模态框)使用心得
2016/12/24 Javascript
取消Bootstrap的dropdown-menu点击默认关闭事件方法
2018/08/10 Javascript
详解Vue CLI3配置之filenameHashing使用和源码设计使用和源码设计
2018/08/31 Javascript
深入浅析vue-cli@3.0 使用及配置说明
2019/05/08 Javascript
微信小程序云开发之使用云存储
2019/05/17 Javascript
了解javascript中的Dom操作
2019/05/27 Javascript
JS桶排序的简单理解与实现方法示例
2019/11/25 Javascript
Vue Router 实现动态路由和常见问题及解决方法
2020/03/06 Javascript
[02:29]DOTA2英雄基础教程 陈
2013/12/17 DOTA
Python编程判断这天是这一年第几天的方法示例
2017/04/18 Python
python中数据爬虫requests库使用方法详解
2018/02/11 Python
1分钟快速生成用于网页内容提取的xslt
2018/02/23 Python
python3个性签名设计实现代码
2018/06/19 Python
Python爬虫将爬取的图片写入world文档的方法
2018/11/07 Python
PyTorch的深度学习入门教程之构建神经网络
2019/06/27 Python
python可视化text()函数使用详解
2020/02/11 Python
scrapy利用selenium爬取豆瓣阅读的全步骤
2020/09/20 Python
总结python 三种常见的内存泄漏场景
2020/11/20 Python
BONIA波尼亚新加坡官网:皮革手袋,鞋类和配件
2016/08/25 全球购物
Cotton On美国网站:澳洲时装连锁品牌
2016/10/25 全球购物
售后专员岗位职责
2013/12/08 职场文书
2014年教学管理工作总结
2014/12/02 职场文书
社区党风廉政建设调研报告
2015/01/01 职场文书
2015年七年级班主任工作总结
2015/05/21 职场文书