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 相关文章推荐
MySql中正则表达式的使用方法描述
Jul 30 PHP
用php实现的获取网页中的图片并保存到本地的代码
Jan 05 PHP
PHP设计模式之调解者模式的深入解析
Jun 13 PHP
深入PHP FTP类的详解
Jun 13 PHP
解析左右值无限分类的实现算法
Jun 20 PHP
解析php开发中的中文编码问题
Aug 08 PHP
PHP调用.NET的WebService 简单实例
Mar 27 PHP
ThinkPHP中html:list标签用法分析
Jan 09 PHP
PHP正则获取页面所有图片地址
Mar 23 PHP
PHP实现的文件操作类及文件下载功能示例
Dec 24 PHP
PHP封装curl的调用接口及常用函数详解
May 31 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 XML error parsing SOAP payload on line 1
2010/06/17 PHP
PHP 5.3 下载时 VC9、VC6、Thread Safe、Non Thread Safe的区别分析
2011/03/28 PHP
Thinkphp模板中截取字符串函数简介
2014/06/17 PHP
PHP遍历目录函数opendir()、readdir()、closedir()、rewinddir()总结
2014/11/18 PHP
thinkPHP商城公告功能开发问题分析
2016/12/01 PHP
浅谈PHP实现大流量下抢购方案
2017/12/15 PHP
laravel 之 Eloquent 模型修改器和序列化示例
2019/10/17 PHP
[JS源码]超长文章自动分页(客户端版)
2007/01/09 Javascript
JsEasy简介 JsEasy是什么?与下载
2007/03/07 Javascript
jquery入门—数据删除与隔行变色以及图片预览
2013/01/07 Javascript
jQuery中:radio选择器用法实例
2015/01/03 Javascript
javascript自定义in_array()函数实现方法
2015/08/03 Javascript
JavaScript模块化开发之SeaJS
2015/12/13 Javascript
20分钟成功编写bootstrap响应式页面 就这么简单
2016/05/12 Javascript
JS及PHP代码编写八大排序算法
2016/07/12 Javascript
浅析上传头像示例及其注意事项
2016/12/14 Javascript
完美解决JS文件页面加载时的阻塞问题
2016/12/18 Javascript
JS定时检测任务任务完成后执行下一步的解决办法
2016/12/22 Javascript
详解a++和++a的区别
2017/08/30 Javascript
用 Vue.js 递归组件实现可折叠的树形菜单(demo)
2017/12/25 Javascript
JavaScript命名空间模式实例详解
2019/06/20 Javascript
layerui代码控制tab选项卡,添加,关闭的实例
2019/09/04 Javascript
详解js中的原型,原型对象,原型链
2020/07/16 Javascript
js将日期格式转换为YYYY-MM-DD HH:MM:SS
2020/09/18 Javascript
JS使用setInterval计时器实现挑战10秒
2020/11/08 Javascript
Python set集合类型操作总结
2014/11/07 Python
详解Python中__str__和__repr__方法的区别
2015/04/17 Python
基于python-opencv3的图像显示和保存操作
2019/06/27 Python
Mac中PyCharm配置Anaconda环境的方法
2020/03/04 Python
Django实现从数据库中获取到的数据转换为dict
2020/03/27 Python
英国领先的高街书籍专家:Waterstones
2018/02/01 全球购物
土耳其风格手工珠宝:Ottoman Hands
2019/07/26 全球购物
编程实现当输入某产品代码则打印出该产品记录的功能
2014/05/03 面试题
党性心得体会
2014/09/03 职场文书
工作调动申请报告
2015/05/18 职场文书
焦点访谈观后感
2015/06/11 职场文书