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调用Java对象的方法
Oct 09 PHP
PHP语法速查表
Jan 02 PHP
php学习之 循环结构实现代码
Jun 09 PHP
php 邮件发送问题解决
Mar 22 PHP
thinkphp实现数组分页示例
Apr 13 PHP
学习php中的正则表达式
Aug 17 PHP
PHP curl模拟登录带验证码的网站
Nov 30 PHP
详解PHP编码转换函数应用技巧
Oct 22 PHP
使用PHP下载CSS文件中的所有图片【几行代码即可实现】
Dec 14 PHP
ThinkPHP框架表单验证操作方法
Jul 19 PHP
php中用unset销毁变量并释放内存
May 10 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 作用域解析运算符(::)
2010/07/27 PHP
php注册审核重点解析(数据访问)
2017/05/23 PHP
JavaScript是否可实现多线程  深入理解JavaScript定时机制
2009/12/22 Javascript
用js做一个小游戏平台 (一)
2009/12/29 Javascript
判断客户端浏览器是否安装了Flash插件的多种方法
2010/08/11 Javascript
jquery、js调用iframe父窗口与子窗口元素的方法整理
2014/07/31 Javascript
Javascript+CSS实现影像卷帘效果思路及代码
2014/10/20 Javascript
js制作简易年历完整实例
2015/01/28 Javascript
js实现感应鼠标图片透明度变化的方法
2015/02/20 Javascript
jQuery ajax中使用confirm,确认是否删除的简单实例
2016/06/17 Javascript
jQuery实现根据滚动条位置加载相应内容功能
2016/07/18 Javascript
浅谈JS中的!=、== 、!==、===的用法和区别
2016/09/24 Javascript
微信小程序 弹窗自定义实例代码
2017/03/08 Javascript
VUE+Element环境搭建与安装的方法步骤
2019/01/24 Javascript
基于webpack4+vue-cli3项目实现换肤功能
2019/07/17 Javascript
微信小程序转化为uni-app项目的方法示例
2020/05/22 Javascript
[03:07]DOTA2英雄基础教程 冰霜诅咒极寒幽魂
2013/12/06 DOTA
Python Web框架Flask下网站开发入门实例
2015/02/08 Python
python实现KNN分类算法
2019/10/16 Python
线程安全及Python中的GIL原理分析
2019/10/29 Python
pytorch 实现tensor与numpy数组转换
2019/12/27 Python
在jupyter notebook中调用.ipynb文件方式
2020/04/14 Python
200行python代码实现贪吃蛇游戏
2020/04/24 Python
html5新增的属性和废除的属性简要概述
2013/02/20 HTML / CSS
美国销售第一的智能手机和平板电脑保护壳:OtterBox
2017/12/21 全球购物
办公室主任职责范文
2013/11/08 职场文书
大学本科毕业生求职信范文
2013/12/18 职场文书
环保建议书作文
2014/03/12 职场文书
集中整治工作方案
2014/05/01 职场文书
青年文明号口号
2014/06/17 职场文书
美术第二课堂活动总结
2014/07/08 职场文书
关于读书的演讲稿1000字
2014/08/27 职场文书
教代会闭幕词
2015/01/28 职场文书
户外活动总结
2015/02/04 职场文书
三八节活动主持词
2015/07/04 职场文书
小学语文课《掌声》教学反思
2016/03/03 职场文书