吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2011|回复: 2
收起左侧

[其他转载] PHP单例模式 设计模式

[复制链接]
xuemyi 发表于 2019-3-29 09:15
[PHP] 纯文本查看 复制代码
<?php

/**
 * 单例模式
 */
class Singleton
{
	private $parem;

	/**
	 * [__construct 构造方法]
	 * [url=home.php?mod=space&uid=952169]@Param[/url] [mixed] $param [参数]
	 */
	private function __construct($param)
	{
		$this->param = $param;
	}

	/**
	 * [Instantiate 静态方法, 用于实例化类]
	 * @param  [mixed] $param [参数]
	 * [url=home.php?mod=space&uid=155549]@Return[/url] [object]   [类对象]
	 */
	public static function Instantiate($param)
	{
		static $object = null;
		if(!is_object($object)) $object = new self($param);
		return $object;
	}

	/**
	 * [Show 测试方法]
	 */
	public function Show()
	{
		print_r($this->param);
	}
}



/**
 * 使用列子
 */
$param = array('test', 'demo', 'devil');
$obj = Singleton::Instantiate($param);
$obj->Show();

/**
 * $obj = Singleton::Instantiate($param);
 * 不管在项目中多少次这么对类进行实例化,都不会重复创建类对象。
 * $object 被定义成静态变量,不能被第二次赋值。
 * 只要$object是一个对象就直接返回当前对象,则进行实例化并返回。
 *
 * 单例模式可以防止重复创建对象,减轻内存开销。
 */

?>

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

wylksy 发表于 2019-3-29 09:32
感谢分享
雨声萧飒 发表于 2019-3-29 10:01
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-16 05:53

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表