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 相关文章推荐
使用Limit参数优化MySQL查询的方法
Nov 12 PHP
生成ubuntu自动切换壁纸xml文件的php代码
Jul 17 PHP
提示Trying to clone an uncloneable object of class Imagic的解决
Oct 27 PHP
php数组函数序列之array_slice() - 在数组中根据条件取出一段值,并返回
Nov 07 PHP
探讨方法的重写(覆载)详解
Jun 08 PHP
ThinkPHP之N方法实例详解
Jun 20 PHP
PHP实现的英文名字全拼随机排号脚本
Jul 04 PHP
php命令行用法入门实例教程
Oct 27 PHP
php实现基于openssl的加密解密方法
Sep 30 PHP
PHP接口继承及接口多继承原理与实现方法详解
Oct 18 PHP
laravel框架中视图的基本使用方法分析
Nov 23 PHP
php设计模式之职责链模式实例分析【星际争霸游戏案例】
Mar 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
第四章 php数学运算
2011/12/30 PHP
php利用单例模式实现日志处理类库
2014/02/10 PHP
PHP中__FILE__、dirname与basename用法实例分析
2014/12/01 PHP
php自定义时间转换函数示例
2016/12/07 PHP
基于php(Thinkphp)+jquery 实现ajax多选反选不选删除数据功能
2017/02/24 PHP
基于php+MySql实现学生信息管理系统实例
2020/08/04 PHP
jQuery源码分析之Event事件分析
2010/06/07 Javascript
FileUpload上传图片(图片不变形)
2010/08/05 Javascript
js列举css中所有图标的实现代码
2011/07/04 Javascript
window.event.keyCode兼容IE和Firefox实现js代码
2013/05/30 Javascript
js去除输入框中所有的空格和禁止输入空格的方法
2014/06/09 Javascript
使用nodejs开发cli项目实例
2015/06/03 NodeJs
JavaScript函数节流概念与用法实例详解
2016/06/20 Javascript
理解JavaScript原型链
2016/10/25 Javascript
vue router路由嵌套不显示问题的解决方法
2017/06/17 Javascript
vue中使用sessionStorage记住密码功能
2018/07/24 Javascript
vue+koa2实现session、token登陆状态验证的示例
2019/08/30 Javascript
如何实现小程序与小程序之间的跳转
2020/11/04 Javascript
用Python进行行为驱动开发的入门教程
2015/04/23 Python
Python中类的创建和实例化操作示例
2019/02/27 Python
Python Multiprocessing多进程 使用tqdm显示进度条的实现
2019/08/13 Python
利用Python实现最小二乘法与梯度下降算法
2021/02/21 Python
马来西亚网上购物:Youbeli
2018/03/30 全球购物
KIEHL’S科颜氏官方旗舰店:源自美国的顶级护肤品牌
2018/06/07 全球购物
锐步英国官网:Reebok英国
2019/11/29 全球购物
网络工程系信息安全技术专业大学生求职信
2013/10/22 职场文书
公司周年庆活动方案
2014/08/25 职场文书
课程设计的心得体会
2014/09/03 职场文书
人身意外保险授权委托书
2014/10/01 职场文书
优秀班主任先进事迹材料
2014/12/16 职场文书
七一晚会主持词
2015/06/29 职场文书
python 调用js的四种方式
2021/04/11 Python
SpringBoot2零基础到精通之异常处理与web原生组件注入
2022/03/22 Java/Android
Python实现Matplotlib,Seaborn动态数据图
2022/05/06 Python
Spring中的@Transactional的工作原理
2022/06/05 Java/Android
python解析照片拍摄时间进行图片整理
2022/07/23 Python