首页 > Web开发 > 详细

php 单例模式

时间:2016-04-27 20:30:29      阅读:177      评论:0      收藏:0      [点我收藏+]

/***********************************************/
/******************单列模式*********************/
/***********************************************/


1.1 单列模式

单例模式: 一个类只能有一个实例

构造函数 非public

三大原则:

1: 构造函数 需要标记为非public(只能被其自身实例化)

2: 拥有一个保存类的实例的静态成员变量 $_instance

3: 拥有一个访问这个实例的公共的静态方法

 

/**********************************************************/

<?php

class inStance{

// 保存类实例的静态变量

private static $_instance;

// 构造函数 声明 为 非public

private function __construct(){

}

// 访问这个实例的 公共的 静态方法

public static function getInstance(){

// 判断 类是否被实例

if (!(self::$_instance instanceof self)) {

// 静态变量 = 实例化类本身

self::$_instance = new self();

}

return self::$_instance;
}

// 自己定义一个方法

public function test(){

echo "test";

}

// 防止用户复制 对象实例

public function __clone(){

// trigger_error() 函数创建用户定义的错误消息

trigger_error(‘Clone is not allow‘ ,E_USER_ERROR);

}

}

// 这个写法会出错,因为构造方法被声明为private

$test = new Example;

// 下面将得到inStance类的单例对象

$test = inStance::getInstance();

$test->test();

// 复制对象将导致一个E_USER_ERROR.

$test_clone = clone $test;

?>

php 单例模式

原文:http://www.cnblogs.com/laowenBlog/p/5439985.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!