设计模式--单例模式

来源:互联网 发布:知乎如何盈利 编辑:程序博客网 时间:2024/06/05 06:29
  在面向对象中,一个对象只负责一个特定的任务 通常是一种很好的选择,例如,你指向让一个对象去访问数据库。单例模式是一种职责模式。他将创建的对象委托到一个单一的访问点上,任何时候 程序中都只有这个类仅有的一个实例存在。这可以防止我们去打开数据库的多个连接,或者不必要使用的系统资源。在更加负责的系统中,使用单例模式维持应用程序状态同步方面也尤为重要
        同步一般是对语言多线程方面的应用,php不是多线程的

有2种方法可以实现单例
 第一个是设置一个全局变量  然后 每次 比如说操作db的时候  访问这个全局变量 
但是有很多缺点  全局变量 不受类保护 可以在任意地方访问 项目大了 容易冲突   谁都可以用  而且 以后移植的时候很麻烦
而且也并没有实现真正的单例 如果别人还是跳过这个变量来new 数据库 那就没办法了

单例模式 必备因素

必须有个构造函数 而且还是private
必须有个克隆类  而且也是 private

    static public function getInstance() {
if(self::$instance instanceof self){
return self::$instance;
return  self::$instance = new self();
}
private function __clone() {
}

private function __construct() {
try{
$this->db = new PDO("mysql:host=localhost;dbname=gwyy", 'root', '123456');
echo "我被链接了";
}catch(PDOException $e) {
exit($e->getMessage());
}
}


原创粉丝点击