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与已存在的Java应用程序集成
Oct 09 PHP
ThinkPHP php 框架学习笔记
Oct 30 PHP
Php Image Resize图片大小调整的函数代码
Jan 17 PHP
php设计模式 Template (模板模式)
Jun 26 PHP
如何用phpmyadmin设置mysql数据库用户的权限
Jan 09 PHP
php 获取本地IP代码
Jun 23 PHP
PHP加密函数 Javascript/Js 解密函数
Sep 23 PHP
一个简单且很好用的php分页类
Oct 26 PHP
PHP+jquery实时显示网站在线人数的方法
Jan 04 PHP
php内嵌函数用法实例
Mar 20 PHP
Laravel5框架自定义错误页面配置操作示例
Apr 17 PHP
php设计模式之原型模式分析【星际争霸游戏案例】
Mar 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+mysql查询优化简单实例
2015/01/13 PHP
PHP实现根据数组的值进行分组的方法
2017/04/20 PHP
[原创]PHP global全局变量经典应用与注意事项分析【附$GLOBALS用法对比】
2019/07/12 PHP
如何制作浮动广告 JavaScript制作浮动广告代码
2012/12/30 Javascript
JSON辅助格式化处理方法
2013/03/26 Javascript
jQuery中val()方法用法实例
2014/12/25 Javascript
jQuery实现冻结表头的方法
2015/03/09 Javascript
javascript实现Table排序的方法
2015/05/15 Javascript
JavaScript变量作用域_动力节点Java学院整理
2017/06/27 Javascript
JavaScript仿微信(电话)联系人列表滑动字母索引实例讲解(推荐)
2017/08/16 Javascript
js链表操作(实例讲解)
2017/08/29 Javascript
微信小程序支付PHP代码
2018/08/23 Javascript
Postman内建变量常用方法实例解析
2020/07/28 Javascript
JavaScript实现复选框全选和取消全选
2020/11/20 Javascript
[01:23:45]DOTA2-DPC中国联赛 正赛 CDEC vs Dragon BO3 第一场 1月22日
2021/03/11 DOTA
python计算牛顿迭代多项式实例分析
2015/05/07 Python
Python基础入门之seed()方法的使用
2015/05/15 Python
python实现爬虫统计学校BBS男女比例(一)
2015/12/31 Python
Python win32com 操作Exce的l简单方法(必看)
2017/05/25 Python
Python获取指定字符前面的所有字符方法
2018/05/02 Python
对python使用http、https代理的实例讲解
2018/05/07 Python
pandas 数据索引与选取的实现方法
2019/06/21 Python
Python常用数据类型之间的转换总结
2019/09/06 Python
酷瑞网络科技面试题
2012/03/30 面试题
监理资料员岗位职责
2014/01/03 职场文书
《最后的姿势》教学反思
2014/02/27 职场文书
会计专业个人自我鉴定
2014/03/21 职场文书
大学生社会实践自我鉴定
2014/03/24 职场文书
元宵晚会主持词
2014/03/25 职场文书
留学经费担保书
2014/05/12 职场文书
争先创优公开承诺书
2014/08/30 职场文书
环卫处个人工作总结
2015/03/04 职场文书
公司员工手册范本
2015/05/14 职场文书
大学生受助感言
2015/08/01 职场文书
教你使用Pandas直接核算Excel中快递费用
2021/05/12 Python
nginx配置虚拟主机的详细步骤
2021/07/21 Servers