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 相关文章推荐
PHPCMS的使用小结
Sep 20 PHP
php curl模拟post请求小实例
Nov 13 PHP
sae使用smarty模板的方法
Dec 17 PHP
教你如何在CI框架中使用 .htaccess 隐藏url中index.php
Jun 09 PHP
php以post形式发送xml的方法
Nov 04 PHP
PHP Hash算法:Times33算法代码实例
May 13 PHP
PHP递归实现快速排序的方法示例
Dec 18 PHP
PHP判断是否是微信打开,浏览器打开的方法
Mar 14 PHP
PHP children()函数讲解
Feb 03 PHP
Linux下源码包安装Swoole及基本使用操作图文详解
Apr 02 PHP
Laravel数据库读写分离配置的方法
Oct 13 PHP
JS中彻底删除JSON对象组成的数组中的元素
Sep 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
hessian 在PHP中的使用介绍
2010/12/13 PHP
php数组函数序列 之array_count_values() 统计数组中所有值出现的次数函数
2011/10/29 PHP
PHP获取一个字符串中间一部分字符的方法
2014/08/19 PHP
PHP检测字符串是否为UTF8编码的常用方法
2014/11/21 PHP
php设计模式之正面模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
javascript写的日历类(基于pj)
2010/12/28 Javascript
JavaScript的递归之递归与循环示例介绍
2013/08/05 Javascript
javascript数组去重方法终极总结
2014/06/05 Javascript
jQuery插件jquery-barcode实现条码打印的方法
2015/11/25 Javascript
JavaScript Math.round() 方法
2015/12/18 Javascript
JavaScript判断页面加载完之后再执行预定函数的技巧
2016/05/17 Javascript
JavaScript编写九九乘法表(两种任选)
2017/02/04 Javascript
jquery实现数字输入框
2017/02/22 Javascript
canvas绘制环形进度条
2017/02/23 Javascript
解决React Native端口号修改的方法
2017/07/28 Javascript
Python enumerate遍历数组示例应用
2008/09/06 Python
在Python中使用Mako模版库的简单教程
2015/04/08 Python
pygame学习笔记(6):完成一个简单的游戏
2015/04/15 Python
python中input()与raw_input()的区别分析
2016/02/27 Python
Python中死锁的形成示例及死锁情况的防止
2016/06/14 Python
Python实现的端口扫描功能示例
2018/04/08 Python
python+mysql实现教务管理系统
2019/02/20 Python
Python中asyncio模块的深入讲解
2019/06/10 Python
Python计算公交发车时间的完整代码
2020/02/12 Python
python神经网络编程实现手写数字识别
2020/05/27 Python
Python远程方法调用实现过程解析
2020/07/28 Python
美国饼干礼物和美食甜点购买网站:Cheryl’s
2020/05/28 全球购物
营销与策划专业毕业生求职信
2013/11/01 职场文书
大学校庆邀请函
2014/01/11 职场文书
优秀女职工事迹材料
2014/02/06 职场文书
婚宴新娘致辞
2015/07/28 职场文书
宿舍管理制度范本
2015/08/07 职场文书
python第三方网页解析器 lxml 扩展库与 xpath 的使用方法
2021/04/06 Python
Go 实现英尺和米的简单单位换算方式
2021/04/29 Golang
浅谈Python从全局与局部变量到装饰器的相关知识
2021/06/21 Python
python非标准时间的转换
2021/07/25 Python