美文网首页php
设计模式--单列模式

设计模式--单列模式

作者: ysp123 | 来源:发表于2019-01-23 23:16 被阅读0次

单列模式保证系统中一个类只有一个实例。即一个类只有一个对象实例。
特点:
1.一个类只能有一个对象;
2.必须是自行创建这个类的对象;
3.要想整个系统提供这一个对象;

<?php 

class single{

    private static $instance;

    public function __construct(){
        echo "自己初始化<br/>";
    }

    //防止克隆对象
    public function __clone(){}

    /** 实例化self  */
    public static function getInstance(){
        if(!self::$instance instanceof self){
            self::$instance = new self();
        }
        return self::$instance;
    }

    /* 方法 */
    public function getName(){
        return "name";
    }

}

$obj = single::getInstance();
echo $obj->getName();
?>

单列模式简单应用:

class mysqlConnect{

    private static $instance;
    private $db;

    public function __construct($config){
        try{
            $this->db = new \PDO($config['host'], $config['user'], $config['password']);
            $this->db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            $this->db->exec('set names utf8'); 
        }catch(PDOException $e){
            var_dump($e->getMessage());
        }
    }

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

    public function query(){
        $stmt = $this->db->query('select 1+1 as sum');
        //var_dump($stmt->fetchAll(PDO::FETCH_ASSOC));
        //$res = $stmt->fetchAll(PDO::FETCH_ASSOC);
        $res = $stmt->fetch(PDO::FETCH_ASSOC);
        var_dump($res['sum']);
    }

}

$config = [
    'host' => 'mysql:host=localhost;dbname=demo',
    'user' => 'root',
    'password' => '123456'
];

$obj = mysqlConnect::getInstance($config);
$obj->query();

相关文章

  • 设计模式-单列模式

    特点 优点 适用场景 具体实现

  • 设计模式--单列模式

    单列模式保证系统中一个类只有一个实例。即一个类只有一个对象实例。特点:1.一个类只能有一个对象;2.必须是自行创建...

  • JAVA单例模式

    设计模式大题分为创建性模式,结构型模式,行为性模式 这节主要讲解单列模式,单列模式有以下八种创建方法:1.饿汉式(...

  • php 设计模式 ——单列模式

    特点: 1.只能有一个实例 2.必须自行创建这个实例 3.必须给其他对象提这一实例 优点: 1.避免大量的new操...

  • 设计模式之-单列模式

    设计模式-单列模式8种方式 1.饿汉式(静态常量) 优缺点说明:优点:这种写法比较简单,在类装载的时候就完成初始化...

  • 设计模式之单例模式

    title: 设计模式之单例模式longzy:2019-2-23 单列模式,顾名思义,一个类只有一个实例。所以单列...

  • Java设计模式知识点

    1.设计模式概述 2.设计模式分类 3.UML类图 4.面向对象的设计原则 一、创建型模式1.1 单列模式1.2 ...

  • Android面试集锦系列(2)——设计模式

    设计模式 问简单的吧,单列模式,人人都会。继续问Android的单列模式怎么才能保证一定是单个实列,感觉又有点吹毛...

  • php设计模式之单列模式

    简单的一个单列模式

  • 单列模式

    单列模式必须用到__new__方法 一定要有返回值 一定要写上超级父类 然后加上cls

网友评论

    本文标题:设计模式--单列模式

    本文链接:https://www.haomeiwen.com/subject/otdejqtx.html