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 相关文章推荐
Smarty+QUICKFORM小小演示
Feb 25 PHP
php开启安全模式后禁用的函数集合
Jun 26 PHP
PHP 第二节 数据类型之字符串类型
Apr 28 PHP
php启用zlib压缩文件的配置方法
Jun 12 PHP
ThinkPHP3.1数据CURD操作快速入门
Jun 19 PHP
php定义参数数量可变的函数用法实例
Mar 16 PHP
详解PHP中的PDO类
Jul 06 PHP
php制作的简单验证码识别代码
Jan 26 PHP
PHP的邮件群发系统phplist配置方法详细总结
Mar 30 PHP
php实现xml与json之间的相互转换功能实例
Jul 07 PHP
php静态成员方法和静态的成员属性的使用方法
Oct 26 PHP
ThinkPHP5与单元测试PHPUnit使用详解
Feb 23 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下批量挂马和批量清马代码
2011/02/27 PHP
PHPThumb PHP 图片缩略图库
2012/03/11 PHP
php使用GeoIP库实例
2014/06/27 PHP
php遍历树的常用方法汇总
2015/06/18 PHP
分享PHP源码批量抓取远程网页图片并保存到本地的实现方法
2015/12/01 PHP
PHP与Web页面交互操作实例分析
2020/06/02 PHP
javascript 短路法代码精简
2009/08/20 Javascript
js数据验证集合、js email验证、js url验证、js长度验证、js数字验证等简单封装
2010/05/15 Javascript
jQuery实现按钮只点击一次后就取消点击事件绑定的方法
2015/06/26 Javascript
使用JavaScript脚本无法直接改变Asp.net中Checkbox控件的Enable属性的解决方法
2015/09/16 Javascript
jQuery中绑定事件bind() on() live() one()的异同
2017/02/23 Javascript
JS实现websocket长轮询实时消息提示的效果
2017/10/10 Javascript
基于ES6作用域和解构赋值详解
2017/11/03 Javascript
详解nodeJs文件系统(fs)与流(stream)
2018/01/24 NodeJs
vue 移动端适配方案详解
2018/11/15 Javascript
详解原生JS回到顶部
2019/03/25 Javascript
通过实例了解Render Props回调地狱解决方案
2020/11/04 Javascript
创建与框架无关的JavaScript插件
2020/12/01 Javascript
浅谈Pandas 排序之后索引的问题
2018/06/07 Python
django框架模板语言使用方法详解
2019/07/18 Python
django创建最简单HTML页面跳转方法
2019/08/16 Python
python实现超市管理系统(后台管理)
2019/10/25 Python
在django中使用apscheduler 执行计划任务的实现方法
2020/02/11 Python
Python定义一个Actor任务
2020/07/29 Python
HTML5离线缓存在tomcat下部署可实现图片flash等离线浏览
2012/12/13 HTML / CSS
英国航空官网:British Airways
2016/09/11 全球购物
在阿联酋购买翻新手机和平板电脑:Teckzu
2021/02/12 全球购物
Python里面如何实现tuple和list的转换
2012/06/13 面试题
小学音乐教学反思
2014/02/05 职场文书
摄影专业毕业生求职信
2014/03/13 职场文书
个人收入证明格式
2015/06/24 职场文书
2016十一国庆节慰问信
2015/12/01 职场文书
2016党员干部廉洁自律心得体会
2016/01/13 职场文书
如何写一份成功的商业计划书
2019/06/25 职场文书
浅谈Vue的computed计算属性
2022/03/21 Vue.js
Python Matplotlib绘制两个Y轴图像
2022/04/13 Python