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之第六天
Oct 09 PHP
基于Windows下Apache PHP5.3.1安装教程
Jan 08 PHP
PHP sprintf() 函数的应用(定义和用法)
Jun 29 PHP
PHP检测移动设备类mobile detection使用实例
Apr 14 PHP
destoon实现调用热门关键字的方法
Jul 15 PHP
PHP实现视频文件上传完整实例
Aug 28 PHP
带你了解PHP7 性能翻倍的关键
Nov 19 PHP
基于PHP代码实现中奖概率算法可用于刮刮卡、大转盘等抽奖算法
Dec 20 PHP
Laravel实现定时任务的示例代码
Aug 10 PHP
Ajax中的JSON格式与php传输过程全面解析
Nov 14 PHP
搭建PhpStorm+PhpStudy开发环境的超详细教程
Sep 17 PHP
PHP中的输出echo、print、printf、sprintf、print_r和var_dump的示例代码
Dec 01 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 mssql 日期出现中文字符的解决方法
2009/03/10 PHP
Yii2 GridView实现列表页直接修改数据的方法
2016/05/16 PHP
PHP的PDO预定义常量讲解
2019/01/24 PHP
php常用字符串长度函数strlen()与mb_strlen()用法实例分析
2019/06/25 PHP
网上应用的一个不错common.js脚本
2007/08/08 Javascript
使用upstart把nodejs应用封装为系统服务实例
2014/06/01 NodeJs
jQuery中prevAll()方法用法实例
2015/01/08 Javascript
JS动态插入并立即执行回调函数的方法
2016/04/21 Javascript
jquery checkbox的相关操作总结
2016/10/17 Javascript
解决Angular.Js与Django标签冲突的方案
2016/12/20 Javascript
jquery.cookie.js的介绍与使用方法
2017/02/09 Javascript
vuex学习之Actions的用法详解
2017/08/29 Javascript
详解jQuery中的isPlainObject()使用方法
2018/02/27 jQuery
js实现鼠标单击Tab表单切换效果
2018/05/16 Javascript
vue-cli项目无法用本机IP访问的解决方法
2018/09/20 Javascript
原生JS实现相邻月份日历
2020/10/13 Javascript
[36:54]Mineski vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python装饰器使用实例:验证参数合法性
2015/06/24 Python
对pandas读取中文unicode的csv和添加行标题的方法详解
2018/12/12 Python
Python button选取本地图片并显示的实例
2019/06/13 Python
PyTorch实现AlexNet示例
2020/01/14 Python
python安装mysql的依赖包mysql-python操作
2021/01/01 Python
解决tensorflow模型压缩的问题_踩坑无数,总算搞定
2021/03/02 Python
澳大利亚家具和家居用品在线商店:Interiors Online
2018/03/05 全球购物
女孩每月服装订阅盒:kidpik
2019/04/17 全球购物
Ticketmaster意大利:音乐会、节日、艺术和剧院的官方门票
2019/12/23 全球购物
澳大利亚头发和美容产品购物网站:OZ Hair & Beauty
2020/03/27 全球购物
高中生校园生活自我评价
2013/09/19 职场文书
商务经理岗位职责
2014/08/03 职场文书
孝敬父母的活动方案
2014/08/28 职场文书
老兵退伍标语
2014/10/07 职场文书
先进班组事迹材料
2014/12/25 职场文书
团委工作总结2015
2015/04/02 职场文书
中学团支部工作总结
2015/08/13 职场文书
2019最新校园运动会广播稿!
2019/06/28 职场文书
Python中Numpy和Matplotlib的基本使用指南
2021/11/02 Python