PHP设计模式 注册表模式(多个类的注册)


Posted in PHP onFebruary 05, 2012

以前我也写过一个注册表类,不过那一个不能进行多个类的注册,下面用数组对类进行了存储。

<?php 
//基础类 
class webSite {//一个非常简单的基础类 
private $siteName; 
private $siteUrl; 
function __construct($siteName,$siteUrl){ 
$this->siteName=$siteName; 
$this->siteUrl=$siteUrl; 
} 
function getName(){ 
return $this->siteName; 
} 
function getUrl(){ 
return $this->siteUrl; 
} 
} 
class registry {//注册表类 单例模式 
private static $instance; 
private $values=array();//用数组存放类名称 
private function __construct(){}//这个用法决定了这个类不能直接实例化 
static function instance(){ 
if (!isset(self::$instance)){self::$instance=new self();} 
return self::$instance; 
} 
function get($key){//获取已经注册了的类 
if (isset($this->values[$key])){ 
return $this->values[$key]; 
} 
return null; 
} 
function set($key,$value){//注册类方法 
$this->values[$key]=$value; 
} 
} 
$reg=registry::instance(); 
$reg->set("website",new webSite("WEB开发笔记","www.chhua.com"));//对类进行注册 
$website=$reg->get("website");//获取类 
echo $website->getName();//输出WEB开发笔记 
echo $website->getUrl();//输出www.chhua.com 
?>

注册表的作用是提供系统级别的对象访问功能。有的同学会说,这样是多此一举,不过小项目中的确没有必要对类进行注册,如果是大项目,还是非常有用的。
PHP 相关文章推荐
模仿OSO的论坛(一)
Oct 09 PHP
PHP HTML代码串 截取实现代码
Jun 29 PHP
CodeIgniter使用phpcms模板引擎
Nov 12 PHP
php表单请求获得数据求和示例
May 15 PHP
PHP中$this和$that指针使用实例
Jan 06 PHP
php实现阿拉伯数字和罗马数字相互转换的方法
Apr 17 PHP
php使用CURL不依赖COOKIEJAR获取COOKIE的方法
Jun 17 PHP
PHP中的常见魔术方法功能作用及用法实例
Jul 01 PHP
验证坐标在某坐标区域内php代码
Oct 08 PHP
php 查找数组元素提高效率的方法详解
May 05 PHP
thinkPHP中U方法加密传递参数功能示例
May 29 PHP
php实现对短信验证码发送次数的限制实例讲解
Mar 04 PHP
需要注意的几个PHP漏洞小结
Feb 05 #PHP
PHP的可变变量名的使用方法分享
Feb 05 #PHP
PHP中如何判断AJAX提交的数据
Feb 05 #PHP
用PHP书写安全的脚本代码
Feb 05 #PHP
PHP中register_globals参数为OFF和ON的区别(register_globals 使用详解)
Feb 05 #PHP
PHP中使用数组实现堆栈数据结构的代码
Feb 05 #PHP
PHP使用数组实现队列
Feb 05 #PHP
You might like
PHP写的资源下载防盗链类分享
2014/05/12 PHP
从刷票了解获得客户端IP的方法
2015/09/21 PHP
JavaScript与HTML结合的基本使用方法整理
2015/10/12 PHP
浅谈htmlentities 、htmlspecialchars、addslashes的使用方法
2016/12/09 PHP
php学习笔记之字符串常见操作总结
2019/07/16 PHP
跨浏览器开发经验总结(三)   警惕“IE依赖综合症”
2010/05/13 Javascript
javascript操作JSON的要领总结
2012/12/09 Javascript
jQuery的控件及事件(输入控件及回车事件)使用示例
2013/07/25 Javascript
关于Jquery操作Cookie取值错误的解决方法
2013/08/26 Javascript
javascript中interval与setTimeOut的区别示例介绍
2014/03/14 Javascript
JQuery中Text方法用法实例分析
2015/05/18 Javascript
浅析nodejs实现Websocket的数据接收与发送
2015/11/19 NodeJs
用JavaScript获取页面文档内容的实现代码
2016/06/10 Javascript
js简单时间比较的方法
2016/08/02 Javascript
使用jQuery操作DOM的方法小结
2017/02/27 Javascript
微信小程序 蓝牙的实现实例代码
2017/06/27 Javascript
使用ECharts实现状态区间图
2018/10/25 Javascript
利用jquery和BootStrap实现动态滚动条效果
2018/12/03 jQuery
jQuery实现购物车全功能
2021/01/11 jQuery
[01:04:01]2014 DOTA2华西杯精英邀请赛5 24 DK VS VG
2014/05/25 DOTA
Python中一般处理中文的几种方法
2019/03/06 Python
Python request使用方法及问题总结
2020/04/26 Python
html5-websocket基于远程方法调用的数据交互实现
2012/12/04 HTML / CSS
BOSE德国官网:尽探索之力,享音乐之极
2016/12/11 全球购物
美国宠物用品网站:Value Pet Supplies
2018/03/17 全球购物
韩国11街:11STREET
2018/03/27 全球购物
单身旅行者的单身假期:Just You
2018/04/08 全球购物
澳大利亚波西米亚风情网上商店:Czarina
2019/03/18 全球购物
简述网络文件系统NFS,并说明其作用
2016/10/19 面试题
音乐表演专业毕业生求职信
2013/10/14 职场文书
教学器材管理制度
2014/01/26 职场文书
护理专科自荐书范文
2014/02/18 职场文书
微电影大赛策划方案
2014/06/05 职场文书
小学教育见习总结
2015/06/23 职场文书
日本十大血腥动漫,那些被禁播的动漫盘点
2022/03/21 日漫
python实现一个简单的贪吃蛇游戏附代码
2022/06/28 Python