爱程序网

和我一起学设计模式(—)

来源: 阅读:

  今天我们一起来学习单例模式:

            首先要弄明白,什么叫单例模式?

    概念: 在任何时候,应用程序中都只会有这个类仅有的一个实例存在。

   单例模式也被认为是职责模式,因为它将创建对象的控制权委托到一个单一的访问点上。

          其次,这么做的好处在哪?

          这可以防止我们去打开数据库的多个连接或者不必要的使用多余的系统资源。在复杂的系统中,还可以起到维护应用程序状态的作用。

       最后:它有哪些典型特征?

          1.它至少要有一个构造函数,并且被标记为私有(private)

          2.拥有一个保存类的实例的静态成员变量。

          3.拥有一个可以访问这个实例的公共的静态方法。

  和普通类不同的是,单例类不能在其它类中直接实例化,只能被其自身实例化。要做到这一点,必须要私有化它的构造函数,并且防止被克隆。用代码来实现一个单例,我们以创建数据库的连接为例:

    

//get data classclass DB {    private $_db;    private static $_instance;    private function __construct(){        $DSN = '../../content/xxtebook.db';        $this->_db = new PDO('sqlite:'.$DSN);    }    //初始化数据库连接    public static function initDB(){        if(! (self::$_instance instanceof self)){            self::$_instance = new self();        }        return self::$_instance;      }       //其它方法
  private function __clone(){}

public function query($sql){}
//....}

相关文章列表: