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 存取 MySQL 数据库的一个例子
Oct 09 PHP
php getsiteurl()函数
Sep 05 PHP
PHP为表单获取的URL 地址预设 http 字符串函数代码
May 26 PHP
PHP定时更新程序设计思路分享
Jun 10 PHP
php上传文件并显示上传进度的方法
Mar 24 PHP
WordPress特定文章对搜索引擎隐藏或只允许搜索引擎查看
Dec 31 PHP
YII CLinkPager分页类扩展增加显示共多少页
Jan 29 PHP
Symfony2安装的方法(2种方法)
Feb 04 PHP
详解WordPress中的头像缓存和代理中的缓存更新方法
Mar 01 PHP
php注册系统和使用Xajax即时验证用户名是否被占用
Aug 31 PHP
PHP crypt()函数的用法讲解
Feb 15 PHP
php实现通过stomp协议连接ActiveMQ操作示例
Feb 23 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上传图片到指定位置路径保存到数据库的具体实现
2013/12/30 PHP
laravel 数据迁移与 Eloquent ORM的实现方法
2019/04/12 PHP
laravel 关联关系遍历数组的例子
2019/10/10 PHP
PHP实现常用排序算法的方法
2020/02/05 PHP
js的event详解。
2006/09/06 Javascript
jQuery 源码分析笔记(7) Queue
2011/06/19 Javascript
查找iframe里元素的方法可传参
2013/09/11 Javascript
使用JavaScript实现网页版Pongo设计思路及源代码分享
2014/06/16 Javascript
javascript获取系统当前时间的方法
2015/11/19 Javascript
BootStrap Typeahead自动补全插件实例代码
2016/08/10 Javascript
jQGrid Table操作列中点击【操作】按钮弹出按钮层的实现代码
2016/12/05 Javascript
jQuery实现文字自动横移
2017/01/08 Javascript
jQuery实现别踩白块儿网页版小游戏
2017/01/18 Javascript
详解vue.js数据传递以及数据分发slot
2018/01/20 Javascript
Angular数据绑定机制原理
2018/04/17 Javascript
JavaScript 作用域实例分析
2019/10/02 Javascript
[01:09:20]NB vs NAVI Supermajor小组赛A组 BO3 第二场 6.2
2018/06/03 DOTA
python写入中英文字符串到文件的方法
2015/05/06 Python
python用模块zlib压缩与解压字符串和文件的方法
2016/12/16 Python
Python开发虚拟环境使用virtualenvwrapper的搭建步骤教程图解
2018/09/19 Python
TFRecord格式存储数据与队列读取实例
2020/01/21 Python
Pyqt5 关于流式布局和滚动条的综合使用示例代码
2020/03/24 Python
20行代码教你用python给证件照换底色的方法示例
2021/02/05 Python
css3 2D图片转动样式可以扩充到Js当中
2014/04/29 HTML / CSS
巴塞罗那观光通票:Barcelona Pass
2019/10/30 全球购物
应届生会计求职信
2013/11/11 职场文书
销售副总经理岗位职责
2013/12/11 职场文书
学校七一活动方案
2014/01/19 职场文书
社区灵活就业证明
2014/11/03 职场文书
农村党支部承诺书
2015/04/30 职场文书
2015年教师节主持词
2015/07/03 职场文书
退休职工欢送会致辞
2015/08/01 职场文书
企业安全隐患排查治理制度
2015/08/05 职场文书
读《钢铁是怎样炼成的》有感:百炼方成钢
2019/11/05 职场文书
浅谈pytorch中的dropout的概率p
2021/05/27 Python
Vscode中SSH插件如何远程连接Linux
2022/05/02 Servers