PHP的单态设计模式?

对php单态设计模式不怎么理解,能用通俗的例子讲解讲解吗? 谢谢!

森林海
浏览 613回答 1
1回答

米琪卡哇伊

对于java转过来程序员说是单态设计模式,在PHP上通常说是单例模式,说法不一样,手册上也有介绍:单例模式(Singleton)用于为一个类生成一个唯一的对象。最常用的地方是数据库连接。 使用单例模式生成一个对象后,该对象可以被其它众多对象所使用。<?phpclass 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类的对象。<?php// 这个写法会出错,因为构造方法被声明为private$test = new Example;// 下面将得到Example类的单例对象$test = Example::singleton();$test->bark();// 复制对象将导致一个E_USER_ERROR.$test_clone = clone $test;?>
打开App,查看更多内容
随时随地看视频慕课网APP