zoukankan      html  css  js  c++  java
  • PHP面向对象——单例模式

          单例模式是设计模式中比较简单的模式,会在一些特殊的场影得以运用,比如:应用中只需要一个对象实例存在,这时使用单例模式能够节省内存。单例模式体现了面向对象封装特性中的“单一职责”和“对象自治”原则。

          构建一个PHP的单例类需要以下要求:

    • 构造函数为private,防止外部代码new此对象。
    • 构造函数为final可以禁止子类覆盖。
    • 拥有一个静态成员变量来保存自身实例。
    • 拥有一个返回自身实例,公共且静态的方法,此方法负责只产生一个实例,如果已经有一个实例则直接返回。
    • 为了防止对象被克隆,还要重写__clone()方法
    <?php
    class 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);
        }
    }
    ?>

    燕十八php公益课,网址:http://zixue.it/ ,YY频道:88354001,YY群:7840433

  • 相关阅读:
    Word添加论文引用标注
    从入门示例看ns2脚本的基本结构
    Linux下Socket编程
    c++中的枚举类型
    运算符重载的规则
    标志位处理
    mfc中从类名获取类运行时信息
    用自定义类声明全局变量的一种快捷方式
    基类的析构函数声明为virtual比较安全
    VC常用数据类型使用转换详解(摘)
  • 原文地址:https://www.cnblogs.com/giantpanda/p/2774039.html
Copyright © 2011-2022 走看看