php设计模式-单例模式
程序员文章站
2022-09-26 17:14:25
所谓单例,一个类通过接口提供一个实例,不能通过new或者clone创建新的实例。 单例的实现关键,通过一个静态的方法 getInstance实现的,这个方法只返回该类的唯一实例,第一次调用该方法的时候,他创建一个实例,把他存在一个私有的静态变量中,下一次只需要把之前创建的实例返回,即可达到单例的效果 ......
所谓单例,一个类通过接口提供一个实例,不能通过new或者clone创建新的实例。
单例的实现关键,通过一个静态的方法 getInstance实现的,这个方法只返回该类的唯一实例,第一次调用该方法的时候,他创建一个实例,把他存在一个私有的静态变量中,下一次只需要把之前创建的实例返回,即可达到单例的效果
1 class Log { 2 static private $instance = NULL; 3 4 private function __construct(){ 5 } 6 7 private function __clone(){ 8 } 9 10 function log( $str ) { 11 echo $str . PHP_EOL; 12 } 13 14 static function getInstance(){ 15 if( self::$instance == NULL ) { 16 self::$instance = new Log(); 17 } 18 return self::$instance; 19 } 20 } 21 22 Log::getInstance()->log( "warning info" ); 23 Log::getInstance()->log( "error info" ); 24 //下面的报错 25 new Log();
这里把构造函数和__clone方法声明为private是防止使用者,不小心用new或者clone生成新的实例
上一篇: HTML5+JS+JQuery+ECharts实现异步加载问题
下一篇: 清除浮动