欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

【php设计模式】单例模式

程序员文章站 2022-04-28 15:37:23
实现单例的三个关键点: 1、使用一个静态成员来保持一个单例实例 2、一个私有的构造方法使得该类只能在类的内部方法中被实例化 3、在实例化对象的静态方法中,先判断静态变量是否已经被赋值,如果赋值则返回该静态成员如果没有则重新实例化赋值 单例模式: 普通实例化类: ......

实现单例的三个关键点:

1、使用一个静态成员来保持一个单例实例

2、一个私有的构造方法使得该类只能在类的内部方法中被实例化

3、在实例化对象的静态方法中,先判断静态变量是否已经被赋值,如果赋值则返回该静态成员如果没有则重新实例化赋值

  单例模式:

class car{
    public static $_instance = null;
    private $name;

    private function __construct($name){
        $this->name = $name;
    }

    public static function getinstance($name){
        if(!self::$_instance){
            self::$_instance = new car($name);
        }
        return self::$_instance;
    }

    public function getname(){
        return $this->name;
    }
}

$car = car::getinstance("benchi");

$car1 = car::getinstance("baoma");

print_r($car->getname());
print_r($car->getname()); // 输出 benchibenchi

  普通实例化类:

class car{

    private $name;

     public function __construct($name){
         $this->name = $name;
    }

    public function getname(){
        return $this->name;
    }

}

$car = new car("benchi");
$car1 = new car("baoma");

print_r($car->getname());
print_r($car1->getname());  //输出 benchibaoma