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 相关文章推荐
解决中英文字符串长度问题函数
Jan 16 PHP
PHP 模拟$_PUT实现代码
Mar 15 PHP
PHP中的string类型使用说明
Jul 27 PHP
php无限极分类实现的两种解决方法
Apr 28 PHP
php设计模式之命令模式使用示例
Mar 02 PHP
PHP实现图片裁剪、添加水印效果代码
Oct 01 PHP
php中print(),print_r(),echo()的区别详解
Dec 01 PHP
PHP设置进度条的方法
Jul 08 PHP
php验证码生成代码
Nov 11 PHP
php版微信js-sdk支付接口类用法示例
Oct 12 PHP
thinkphp 手机号和用户名同时登录
Jan 20 PHP
PhpStorm连接服务器并实现自动上传功能
Dec 09 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调用mysql存储过程
2007/02/14 PHP
php下实现伪 url 的超简单方法[转]
2007/09/24 PHP
jQuery 浮动广告实现代码
2008/12/25 Javascript
js遍历、动态的添加数据的小例子
2013/06/22 Javascript
js将当前时间格式转换成时间搓(自写)
2013/09/26 Javascript
jquery实现手机发送验证码的倒计时代码
2014/02/12 Javascript
Linux下使用jq友好的打印JSON技巧分享
2014/11/18 Javascript
深入理解JavaScript系列(21):S.O.L.I.D五大原则之接口隔离原则ISP详解
2015/03/05 Javascript
jQuery Validate初步体验(二)
2015/12/12 Javascript
浅析Nodejs npm常用命令
2016/06/14 NodeJs
jQuery下拉框的简单应用
2016/06/24 Javascript
jQuery EasyUI提交表单验证
2016/07/19 Javascript
javascript设计模式之module(模块)模式
2016/08/19 Javascript
详解jQuery中的DOM操作
2016/12/23 Javascript
用jQuery实现可输入多选下拉组合框实例代码
2017/01/18 Javascript
使用async-validator编写Form组件的方法
2018/01/10 Javascript
JavaScript作用域链实例详解
2019/01/21 Javascript
微信小程序时间戳转日期的详解
2019/04/30 Javascript
微信小程序登录对接Django后端实现JWT方式验证登录详解
2019/07/29 Javascript
JS如何实现手机端输入验证码效果
2020/05/13 Javascript
vant 自定义 van-dropdown-item的用法
2020/08/05 Javascript
Python实现扫描局域网活动ip(扫描在线电脑)
2015/04/28 Python
python中threading超线程用法实例分析
2015/05/16 Python
用Python3创建httpServer的简单方法
2018/06/04 Python
Python中的groupby分组功能的实例代码
2018/07/11 Python
Python3模拟curl发送post请求操作示例
2019/05/03 Python
利用Python实现手机短信监控通知的方法
2019/07/22 Python
基于Python编写一个计算器程序,实现简单的加减乘除和取余二元运算
2020/08/05 Python
SmartBuyGlasses德国:购买太阳镜和眼镜
2019/08/20 全球购物
在校生钳工实习自我鉴定
2013/09/19 职场文书
中层干部岗位职责
2013/12/18 职场文书
临床护士自荐信
2014/01/31 职场文书
房屋租赁委托书范本
2014/10/04 职场文书
人民检察院起诉书
2015/05/20 职场文书
校长新学期致辞
2015/07/30 职场文书
干货!开幕词的写作方法
2019/04/02 职场文书