PHP面向对象——单例模式

来源:互联网 发布:软件认证 软件基地 编辑:程序博客网 时间:2024/04/28 19:09
    单例模式是设计模式中比较简单的模式,会在一些特殊的场影得以运用,比如:应用中只需要一个对象实例存在,这时使用单例模式能够节省内存。单例模式体现了面向对象封装特性中的“单一职责”和“对象自治”原则。  构建一个PHP的单例类需要以下要求:
  • 构造函数为private,防止外部代码new此对象。
  • 构造函数为final可以禁止子类覆盖。
  • 拥有一个静态成员变量来保存自身实例。
  • 拥有一个返回自身实例,公共且静态的方法,此方法负责只产生一个实例,如果已经有一个实例则直接返回。
  • 为了防止对象被克隆,还要重写__clone()方法
<?phpclass Database {    private $_db;    static $_instance;    final private function __construct($dbname,$user='root',$password='',$port='3306') {        $conStr = "dbname=".$dbname." user=".$user." password=".$password." port=".$port;        $this->_db = pg_connect($conStr);    }    private __clone() {};    public static function getInstance($dbname,$user='root',$password='',$port='3306') {        if( ! (self::$_instance instanceof self) ) {            self::$_instance = new self($dbname,$user='root',$password='',$port='3306');        }        return self::$_instance;    }    public function query($sql) {        return pg_query($this->_db, $sql);    }}?>
0 0
原创粉丝点击