A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© bingwei213 初级黑马   /  2018-6-29 19:48  /  1407 人查看  /  0 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 bingwei213 于 2018-8-24 22:33 编辑

浅析单例模式

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

单例模式代码  danli.php:

[PHP] 纯文本查看 复制代码
<?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] 纯文本查看 复制代码
<?php
        header("content-type:text/html;charset=utf-8");
    //加载类文件
    require "Danli.php";
    //第一次调用类的实例
    $first = Danli::getInstance();
    $first->test();
    //第二次调用类的实例
    $second = Danli::getInstance();
    $second->test();




1、一个private的__construct是必须的,单例类不能在其它类中实例化,只能被自身实例化;
2、拥有一个保存类的实例的静态成员变量;
3、一个静态的公共方法用于实例化这个类,并访问这个类的实例;








0 个回复

您需要登录后才可以回帖 登录 | 加入黑马