php 设计模式之 单例模式


Posted in PHP onDecember 19, 2008

小船类boat.php

<?php 
class boat { 
private static $instance=null; 
private $skipper; 
private $personNum=0; 
private $passengers=array(); 
private function __construct() { 
} 
public static function getInstance(){ 
if (self::$instance==null){ 
self::$instance=new boat(); 
} 
return self::$instance; 
} 
/** 
* 设置船长 
* 
* @param unknown_type $name 
*/ 
public function setSkipper($name){ 
$this->skipper=$name; 
} 
/** 
* 装人 
* 
* @param unknown_type $person 
*/ 
public function load($person){ 
if (!emptyempty($person) and $this->personNum<=5){ 
array_push($this->passengers,$person); 
$this->personNum=$this->personNum+1; 
} 
if ($this->personNum>5) { 
echo 'this boat only load 5 person!'; 
} 
} 
/** 
* 船上装了什么人 
* 
* @return unknown 
*/ 
public function whoInBoat(){ 
return $this->passengers; 
} 
} 
?>

现在看看怎么样上客
<?php 
include 'boat.php'; 
echo "从前有一条河,河里只有一条船,<br>"; 
$boat1=boat::getInstance();//因为只有一条船,所以只有一个实例 
echo "现在张三要到河东去,"; 
$boat1->load('张三'); 
echo "<br>现在船上坐着:<br>"; 
foreach ($boat1->whoInboat() as $who){ 
echo $who.'<br>'; 
} 
echo "<br>现在李四也要过河东去<br>"; 
$boat1->load('李四'); 
echo "现在船上坐着:<br>"; 
foreach ($boat1->whoInboat() as $who){ 
echo $who.'、'; 
} 
echo "<br><br>王五以为这条河有另一条船,<br>"; 
$boat2=boat::getInstance(); 
echo "他现在上船<br>"; 
$boat2->load('王五'); 
echo "现在船上坐着:<br>"; 
foreach ($boat1->whoInboat() as $who){ 
echo $who.'、'; 
} 
?>
PHP 相关文章推荐
PHP 读取和修改大文件的某行内容的代码
Oct 30 PHP
浅谈PHP 闭包特性在实际应用中的问题
Oct 30 PHP
php GeoIP的使用教程
Mar 09 PHP
PHP 遍历文件实现代码
May 04 PHP
php数字转汉字代码(算法)
Oct 08 PHP
phpMyAdmin 链接表的附加功能尚未激活问题的解决方法(已测)
Mar 27 PHP
php快速查找数据库中恶意代码的方法
Apr 01 PHP
PHP编程获取各个时间段具体时间的方法
May 26 PHP
详解PHP处理字符串类似indexof的方法函数
Jun 11 PHP
PHP/ThinkPHP实现批量打包下载文件的方法示例
Jul 31 PHP
Codeigniter里的无刷新上传的实现代码
Apr 14 PHP
PHP使用POP3读取邮箱接收邮件的示例代码
Jul 08 PHP
PHP 采集程序 常用函数
Dec 18 #PHP
php IP及IP段进行访问限制的代码
Dec 17 #PHP
php mssql 数据库分页SQL语句
Dec 16 #PHP
linux下 C语言对 php 扩展
Dec 14 #PHP
php 文件状态缓存带来的问题
Dec 14 #PHP
快速开发一个PHP扩展图文教程
Dec 12 #PHP
PHP Google的translate API代码
Dec 10 #PHP
You might like
使用php 获取时间今天明天昨天时间戳的详解
2013/06/20 PHP
php构造函数的继承方法
2015/02/09 PHP
一些Javascript的IE和Firefox(火狐)兼容性的问题总结及常用例子
2009/05/21 Javascript
用showModalDialog弹出页面后,提交表单总是弹出一个新窗口
2009/07/18 Javascript
jquery插件 cluetip 关键词注释
2010/01/12 Javascript
JavaScript在IE和Firefox浏览器下的7个差异兼容写法小结
2010/06/18 Javascript
javascript 数据类型转换(parseInt,parseFloat)
2010/07/20 Javascript
js confirm()方法的使用方法实例
2013/07/13 Javascript
最短的IE判断var ie=!-[1,]分析
2014/05/28 Javascript
node.js中的console.time方法使用说明
2014/12/09 Javascript
jQuery中mouseover事件用法实例
2014/12/26 Javascript
jQuery获得子元素个数的方法
2015/04/14 Javascript
JavaScript仿flash遮罩动画效果
2016/06/15 Javascript
BootStrap注意事项小结(五)表单
2017/03/10 Javascript
Bootstrap模态框插件使用详解
2017/05/11 Javascript
微信小程序实现全局搜索代码高亮的示例
2018/03/30 Javascript
原生js实现可兼容PC和移动端的拖动滑块功能详解【测试可用】
2019/08/15 Javascript
Jquery 动态添加元素并添加点击事件实现过程解析
2019/10/12 jQuery
如何使用webpack打包一个库library的方法步骤
2019/12/18 Javascript
Node Express用法详解【安装、使用、路由、中间件、模板引擎等】
2020/05/13 Javascript
vue $mount 和 el的区别说明
2020/09/11 Javascript
[13:40]TI3青蛙君全程回顾 DOTA2我们为梦想再战
2013/09/13 DOTA
[02:41]辉夜杯现场一家三口 “我爸玩风行 我玩血魔”
2015/12/27 DOTA
解决Python中pandas读取*.csv文件出现编码问题
2019/07/12 Python
python爬虫学习笔记之pyquery模块基本用法详解
2020/04/09 Python
ipython jupyter notebook中显示图像和数学公式实例
2020/04/15 Python
如何真正的了解python装饰器
2020/08/14 Python
教师求职推荐信范文
2013/11/20 职场文书
小学教师师德演讲稿
2014/05/06 职场文书
美食节策划方案
2014/05/26 职场文书
篮球比赛拉拉队口号
2014/06/10 职场文书
党的生日演讲稿
2014/09/10 职场文书
邀请函怎么写
2015/01/30 职场文书
2015年高三毕业班班主任工作总结
2015/10/22 职场文书
如何在C++中调用Python
2021/05/21 Python
Java 超详细讲解IO操作字节流与字符流
2022/03/25 Java/Android