【php设计模式】单例模式

news/2024/7/8 3:22:00

实现单例的三个关键点:

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


http://www.niftyadmin.cn/n/4072643.html

相关文章

如何用ps做计算机科学系的logo,PS教你制作一个精致的大众汽车LOGO图文教程

这个教程将向你展示,如何运用图层样式、径向渐变工具和多边形套索工具,来描摹传说中的大众形象标志。一起来看看吧我们的教程被分为两个简要的阶段:1. 创建圆形球面2. 绘制 “VW”徽标(大众Logo的主形——译者注)作者PSD源文件:微…

开关IIS不重启电脑

开关IIS不重启电脑 有时候我们在WEB程序如:ASP,中无意中使用到了一个死循环,或者在测试 DLL组件时,挂了。这时候IIS就停止了响应,我们要继续我们的工作啊,重启IIS服务吧。 然而这个进程还在执行,Internet 服…

Django(一)持续更新中

一、Django基本流程和命令行工具 1. 安装Django 1pip3 install django2. 在当前目录新建一个mysite项目 1django-admin.py startproject mysite startproject命令创建一个目录,包含以下文件: __init__.py # 空文件,让Python把该目录当成一个…

HTC是HTML Component的缩写

HTC是HTML Component的缩写,是IE5及后续版本浏览器所支持的客户端组件。据我个人理解,HTC就是一组以DHTML为基础封装了客户端行为的脚本,每HTC以*.htc的文件存储,一个HTC是一个客户端“类”。 编写HTC最重要的一点是知道element对…

利用Spring Data Redis 来实现消息的发布订阅机制

2019独角兽企业重金招聘Python工程师标准>>> redis是一款高性能key-value存储系统,不仅能做缓存,还能用于消息队列 这里利用Spring Data Redis 来实现消息的发布订阅机制 Demo地址:https://gitee.com/1913210361/redis-queue-demo…

H3C-实验七

对每台路由器的直连ip编写动态路由命令 路由器1 rip 1 network 192.168.1.0 network 10.1.1.0 undo summary undo network 10.0.0.0 version 2 network 10.1.1.0 0.0.0.3 路由器2 rip 1 network 10.1.1.0 undo summary undo network 10.0.0.0 version 2 network 10.1.1.0 0.0.0…

linux 删除!号

在linux 中,可能会有错误的或恶意的程序创建包含无法打印的字符的目录。定位和重命名这些目录,这样就可以更容易地检查并删除它们。要完成该操作,您首先需要在 ls中包含 -i开关,以获取该目录的索引节点的数值。然后,使…

音乐剧

音乐剧(Musical theater)是由喜歌剧及轻歌剧(或称“小歌剧”)演变而成的,早期称作“音乐喜剧”,后来简称为“音乐剧”,是19世纪末起源于英国的一种歌剧体裁,是由对白和歌唱相结合而演…