【php设计模式】单例模式

2019-05-22 06:36:12来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

实现单例的三个关键点:

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

 


原文链接:https://www.cnblogs.com/itsuibi/p/10902451.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:PHP 结合 Bootstrap 实现学生列表以及添加学生功能实现(继上篇

下一篇:【静态延迟加载】self关键字和static关键字的区别