博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php设计模式-单例模式
阅读量:6949 次
发布时间:2019-06-27

本文共 804 字,大约阅读时间需要 2 分钟。

所谓单例,一个类通过接口提供一个实例,不能通过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生成新的实例

 

转载地址:http://tmkil.baihongyu.com/

你可能感兴趣的文章
java JMF 多媒体
查看>>
Python核心编程(第二版)PDF
查看>>
golang 性能测试pprof
查看>>
ubuntu开机只有一条横杠在闪的解决办法
查看>>
分享幻灯片+在线阅读
查看>>
塔式、机架式、刀片式服务器的区别和特点
查看>>
25、Base64
查看>>
如何用 Canvas绘制图形
查看>>
Dynamics CRM 系统自定义部分的语言翻译
查看>>
Makefile学习与进阶之Makefile.am和$$(M)的意思
查看>>
Codeforces Round #382 (Div. 2)
查看>>
日历控件--My97DatePicker的使用
查看>>
k8s运行容器之Job(四)--技术流ken
查看>>
Android下打印调试堆栈方法(转)
查看>>
iOS7坐标上移44pt的解决
查看>>
面向对象基础
查看>>
Python全栈开发—第1站
查看>>
15 函数回调 模块
查看>>
iOS掉落回弹效果
查看>>
Eclipse--eclipse去除js(JavaScript)验证错误
查看>>