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+MySQL5.0中文乱码解决方法
Nov 20 PHP
PHP 面向对象实现代码
Nov 11 PHP
深入理解curl类,可用于模拟get,post和curl下载
Jun 08 PHP
配置php网页显示各种语法错误
Sep 23 PHP
php sybase_fetch_array使用方法
Apr 15 PHP
php+js实现异步图片上传实例分享
Jun 02 PHP
PHP中怎样防止SQL注入分析
Oct 23 PHP
PHP中mysqli_affected_rows作用行数返回值分析
Dec 26 PHP
PHP会员找回密码功能的简单实现
Sep 05 PHP
php实现背景图上添加圆形logo图标的方法
Nov 17 PHP
CakePHP框架Model关联对象用法分析
Aug 04 PHP
关于php支持的协议与封装协议总结(推荐)
Nov 17 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学习资源和链接.
2006/12/05 PHP
PHP采集静态页面并把页面css,img,js保存的方法
2014/12/23 PHP
php导入模块文件分享
2015/03/17 PHP
thinkPHP实现递归循环栏目并按照树形结构无限极输出的方法
2016/05/19 PHP
PHP实现微信公众号验证Token的示例代码
2019/12/16 PHP
JavaScript中出现乱码的处理心得
2009/12/24 Javascript
jQuery库与其他JS库冲突的解决办法
2010/02/07 Javascript
JavaScript中使用构造函数实现继承的代码
2010/08/12 Javascript
基于jQuery中对数组进行操作的方法
2013/04/16 Javascript
Jquery多选下拉列表插件jquery multiselect功能介绍及使用
2013/05/24 Javascript
使用 js+正则表达式为关键词添加链接
2014/11/11 Javascript
javascript变量声明实例分析
2015/04/25 Javascript
jQuery三级下拉列表导航菜单代码分享
2020/04/15 Javascript
js动态获取子复选项并设计全选及提交的实现方法
2016/06/24 Javascript
BootStrap实现手机端轮播图左右滑动事件
2016/10/13 Javascript
详解使用Vue Router导航钩子与Vuex来实现后退状态保存
2017/09/11 Javascript
基于VUE移动音乐WEBAPP跨域请求失败的解决方法
2018/01/16 Javascript
json前后端数据交互相关代码
2018/09/19 Javascript
JavaScript实现的鼠标跟随特效示例【2则实例】
2018/12/22 Javascript
Vue中常用rules校验规则(实例代码)
2019/11/14 Javascript
基于JavaScript实现十五拼图代码实例
2020/04/26 Javascript
Vue实现菜单切换功能
2020/11/08 Javascript
vue项目中企业微信使用js-sdk时config和agentConfig配置方式详解
2020/12/15 Vue.js
从源码角度来回答keep-alive组件的缓存原理
2021/01/18 Javascript
Pyramid将models.py文件的内容分布到多个文件的方法
2013/11/27 Python
Python 中 list 的各项操作技巧
2017/04/13 Python
详解Python文本操作相关模块
2017/06/22 Python
Django安装配置mysql的方法步骤
2018/10/15 Python
Python 使用Numpy对矩阵进行转置的方法
2019/01/28 Python
python实现kNN算法识别手写体数字的示例代码
2019/08/16 Python
python框架flask入门之环境搭建及开启调试
2020/06/07 Python
3分钟看懂Python后端必须知道的Django的信号机制
2020/07/26 Python
美国最大的宠物药店:1-800-PetMeds
2016/10/02 全球购物
求职意向书
2014/07/29 职场文书
龙潭大峡谷导游词
2015/02/10 职场文书
实习报告范文
2019/07/30 职场文书