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 09 PHP
php设计模式 Observer(观察者模式)
Jun 26 PHP
浅谈php自定义错误日志
Feb 13 PHP
php集成套件服务器xampp安装使用教程(适合第一次玩PHP的新手)
Jun 03 PHP
php页面,mysql数据库转utf-8乱码,utf-8编码问题总结
Aug 27 PHP
浅谈PHP值mysql操作类
Jun 29 PHP
PHP 极验验证码实例讲解
Sep 29 PHP
PHP 验证身份证是否合法的函数
Feb 09 PHP
THINKPHP在添加数据的时候获取主键id的值方法
Apr 03 PHP
PHP实现在windows下配置sendmail并通过mail()函数发送邮件的方法
Jun 20 PHP
深入分析PHP设计模式
Jun 15 PHP
php中yii框架实例用法
Dec 22 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的面试题集,附我的答案和分析(一)
2006/11/19 PHP
PHP开发中的错误收集,不定期更新。
2011/02/03 PHP
ioncube_loader_win_5.2.dll的错误解决方法
2015/01/04 PHP
Smarty模板变量调节器用法分析
2016/05/23 PHP
thinkphp5 加载静态资源路径与常量的方法
2017/12/24 PHP
php使用curl模拟浏览器表单上传文件或者图片的方法
2018/11/10 PHP
详解php命令注入攻击
2019/04/06 PHP
javascript去掉前后空格的实例
2013/11/07 Javascript
JavaScript中0和&quot;&quot;比较引发的问题
2016/05/26 Javascript
Angular.Js之Scope作用域的学习教程
2017/04/27 Javascript
详解AngularJS 模块化
2017/06/14 Javascript
在Vue项目中引入腾讯验证码服务的教程
2018/04/03 Javascript
你点的 ES6一些小技巧,请查收
2018/04/25 Javascript
ES6中的迭代器、Generator函数及Generator函数的异步操作方法
2019/05/12 Javascript
vue-week-picker实现支持按周切换的日历
2019/06/26 Javascript
微信小程序错误this.setData报错及解决过程
2019/09/18 Javascript
Electron 打包问题:electron-builder 下载各种依赖出错(推荐)
2020/07/09 Javascript
JavaScript实现简单验证码
2020/08/24 Javascript
vue-amap根据地址回显地图并mark的操作
2020/11/03 Javascript
python中split方法用法分析
2015/04/17 Python
Python迭代和迭代器详解
2016/11/10 Python
Python3读取Excel数据存入MySQL的方法
2018/05/04 Python
对numpy中向量式三目运算符详解
2018/10/31 Python
python实现烟花小程序
2019/01/30 Python
python实现图书借阅系统
2019/02/20 Python
python调用虹软2.0第三版的具体使用
2019/02/22 Python
Python timeit模块的使用实践
2020/01/13 Python
Sephora丝芙兰菲律宾官方网站:购买化妆品和护肤品
2017/04/05 全球购物
美国奢侈品在线团购网站:Gilt City
2017/11/16 全球购物
什么是静态路由,其特点是什么?什么是动态路由,其特点是什么?
2013/07/26 面试题
几道Java和数据库的面试题
2013/05/30 面试题
志愿者活动总结范文
2014/04/26 职场文书
班级学雷锋活动总结
2014/06/26 职场文书
自主招生学校推荐信范文
2015/03/26 职场文书
介绍信范文大全
2015/05/07 职场文书
大学学生会主席竞选稿
2015/11/19 职场文书