• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

php的单例模式

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

据说,单例模式是设计模式中最简单的一种。

不多说,先上代码,然后解说,一共两个文件:

danli.class
    <?php
        class Danli
        {
            //保存类的实例的静态成员变量
            static private $_instance=null;
            //私有的构造方法
            private function __construct(){
                echo "这是一个构造方法<br>";
            }
            //用于访问类的实例的公共的静态方法
            static public function getInstance(){
                if(!(self::$_instance instanceof Danli)){
                    echo "实例化<br>";
                    self::$_instance = new self;
                }
                return self::$_instance;
            }
            //类的其它方法
            public function test(){
                echo "调用成功<br>";
            }
        }
index.php
    <?php
        //加载类文件
        require "Danli.php";
        //第一次调用类的实例
        $first = Danli::getInstance();
        $first->test();
        //第二次调用类的实例
        $second = Danli::getInstance();
        $second->test();
输出结果:
        实例化
        这是一个构造方法
        调用成功
        调用成功

以上是PHP单例模式的简单实现,通过结果可以看到Danli类只实例化了一次。

接下来说一下单例模式。

简单点儿说,单例模式就是让类的一个对象成为系统中的唯一实例,避免大量的 new 操作消耗的资源,也方便设置钩子输出日志信息等。
关于单例模式在网上可以收到很多很详细的解说,这里不再复述,咱们还是详细说一下PHP的单例模式的实现。
从上面的代码可以看出来,PHP的单例模式实现要求:
1、一个private的__construct是必须的,单例类不能在其它类中实例化,只能被自身实例化;
2、拥有一个保存类的实例的静态成员变量;
3、一个静态的公共方法用于实例化这个类,并访问这个类的实例;


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
PHPmysqli_fetch_all()函数发布时间:2022-07-10
下一篇:
linux中查看php.ini的存放位置发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap