设计模式(十四):单例模式

2018-12-13  本文已影响8人  骑着母猪砍大象

转载请注明作者和出处https://www.jianshu.com/p/625636bff086

运行平台: Windows

php版本: php7.0

作者简介: 一个本该成为游戏职业选手却被编程耽误的程序员


单例模式:

很多人都听过,有一个说法,三私一公,只要满足这个特点,那么一般他就是单例模式了
①、私有静态属性,又来储存生成的唯一对象
②、私有构造函数
③、私有克隆函数,防止克隆——clone
④、公共静态方法,用来访问静态属性储存的对象,如果没有对象,则生成此单例
,也就是说,全场只能有一个被实例化的对象,这在数据库连接是经常被用到

//单例
class Singleton{
    //创建静态私有的变量保存该类对象
    static private $instance;
    //参数
    private $config;
    //防止直接创建对象
    private function __construct($config){
        $this -> config = $config;
        echo "我被实例化了";
    }
    //防止克隆对象
    private function __clone(){

    }
    static public function getInstance($config){
        //判断$instance是否是Singleton的对象
        //没有则创建
        if (!self::$instance instanceof self) {
            self::$instance = new self($config);
        }
        return self::$instance;

    }
    public function getName(){
        echo $this -> config;
    }
}
$db1 = Singleton::getInstance(1);
$db1 -> getName();
echo "<br>";
$db2 = Singleton::getInstance(4);
$db2 -> getName();

上一篇 下一篇

猜你喜欢

热点阅读