php 单态,PHP的单态设计模式?

对于java转过来程序员说是单态设计模式,在PHP上通常说是单例模式,说法不一样,手册上也有介绍:

单例模式(Singleton)用于为一个类生成一个唯一的对象。最常用的地方是数据库连接。 使用单例模式生成一个对象后,该对象可以被其它众多对象所使用。

class Example

{

// 保存类实例在此属性中

private static $instance;

// 构造方法声明为private,防止直接创建对象

private function __construct()

{

echo 'I am constructed';

}

// singleton 方法

public static function singleton()

{

if (!isset(self::$instance)) {

$c = __CLASS__;

self::$instance = new $c;

}

return self::$instance;

}

// Example类中的普通方法

public function bark()

{

echo 'Woof!';

}

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

public function __clone()

{

trigger_error('Clone is not allowed.', E_USER_ERROR);

}

}

?>

这样我们可以得到一个独一无二的Example类的对象。

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

$test = new Example;

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

$test = Example::singleton();

$test->bark();

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

$test_clone = clone $test;

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值