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

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

单例设计模式 (单态)    定义: 一个类 只能允许有 一个对象存在.    1.不让进: 使类不能被实例化    2.留后门: 设置静态方法    3.给对象: 在静态方法里实例化该类    4.判初夜: 判断是否是 第一次产生该类的对象    5.设静态: 静态方法里 要使用静态属性 *//*//1.不让进: 使类不能被实例化-----------------class Test{    // 设置 一个封装的构造方法    private function __construct()    {        //占位, 我就是不让你NEW我~~~    }}*//*//2.留后门: 设置静态方法--------------------class Test{    // 设置 一个封装的构造方法    private function __construct()    {        //占位, 我就是不让你NEW我~~~    }    //后门    public static function getObject()    {        echo "啊,我是后门,进吧!
"; }}*//*//3.给对象: 在静态方法里实例化该类------------------class Test{ // 设置 一个封装的构造方法 private function __construct() { //占位, 我就是不让你NEW我~~~ } //后门 public static function getObject() { echo "啊,我是后门,进吧!
"; return new self();//实例化一个对象给你 }}*//*//4.判初夜: 判断是否是 第一次产生该类的对象------------------class Test{ private $obj = null;//属性值为对象,默认为null // 设置 一个封装的构造方法 private function __construct() { //占位, 我就是不让你NEW我~~~ } //后门 public static function getObject() { echo "啊,我是后门,进吧!
"; if ($this->obj === null) { $this->obj = new self();//实例化一个对象 } //返回的属性 其实就是本对象 return $this->obj; }}*///5.设静态: 静态方法里 要使用静态属性------------------class Test{ private static $obj = null;//属性值为对象,默认为null // 设置 一个封装的构造方法 private function __construct() { //占位, 我就是不让你NEW我~~~ } //后门 public static function getObject() { echo "啊,我是后门,进吧!
"; if (self::$obj === null) { self::$obj = new self();//实例化一个对象 } //返回的属性 其实就是本对象 return self::$obj; }}/*Test::getObject();//使用静态方法访问该类里的方法exit;*/$t1 = Test::getObject();$t2 = Test::getObject();$t3 = Test::getObject();$t4 = Test::getObject();$t5 = Test::getObject();$t6 = Test::getObject();$t7 = Test::getObject();$t8 = Test::getObject();//判断 两个对象 是否是同一个对象if ($t1 === $t6) { echo "哦, Yes! 是同一个实例
";} else { echo "哦, No! 不是同一个实例
";}
第五步是成品,前面4步都是一步一步的推的!

转载于:https://www.cnblogs.com/forqiwen/p/8949508.html

你可能感兴趣的文章
Comparación para 2019 Nueva Lonsdor K518S y K518ISE
查看>>
论文笔记——MobileNets(Efficient Convolutional Neural Networks for Mobile Vision Applications)
查看>>
从今天开始
查看>>
Attribute(特性)与AOP
查看>>
第三次作业
查看>>
Codeforces 962 /2错误 相间位置排列 堆模拟 X轴距离最小值 前向星点双连通分量求只存在在一个简单环中的边...
查看>>
Matrix快速幂 模板
查看>>
MySQL开启远程连接权限
查看>>
tomcat7.0.27的bio,nio.apr高级运行模式
查看>>
C#预处理器命令
查看>>
苹果手表:大方向和谷歌一样,硬件分道扬镳
查看>>
Competing Consumers Pattern (竞争消费者模式)
查看>>
HDUOJ ------1398
查看>>
cf--------(div1)1A. Theatre Square
查看>>
Android面试收集录15 Android Bitmap压缩策略
查看>>
PHP魔术方法之__call与__callStatic方法
查看>>
ubuntu 安装后的配置
查看>>
Html学习_简易个人网页制作
查看>>
angular中ng-bind指令小案例
查看>>
jqery总结
查看>>