【PHP-设计模式】单例模式

简介: 【PHP-设计模式】单例模式

author:咔咔


wechat:fangkangfk


做什么:这是一份单例模式的代码,我们需要对他进行debug调试,查看运行步骤


文件:就是下面的这份代码,直接拿过去就可以用


测试:使用debug


为什么使用:就拿链接数据库来说,我们在链接数据库是只需要链接一次的,也就是只需要实例化一次对象就可以了,但是实际情况下我们运行一次就会new一次对象,使用单例模式可以避免大量的new操作,因为每一次实例化都会消耗系统和内存的资源


特点:


只会创建一个对象


必须自行创建这个实例


必须给其他对象提供这个实例


<?php
class Single {
    private $name;//声明一个私有的实例变量
    private function __construct(){//声明私有构造方法为了防止外部代码使用new来创建对象。
    }
    static public $instance;//声明一个静态变量(保存在类中唯一的一个实例)
    static public function getinstance(){//声明一个getinstance()静态方法,用于检测是否有实例对象
        $kaka = self::$instance;
        if(!$kaka){
            self::$instance = new self();
        }
        return self::$instance;
    }
    public function setname($n){ $this->name = $n; }
    public function getname(){ return $this->name; }
}
$oa = Single::getinstance();
$ob = Single::getinstance();
$oa->setname('hello world');
$ob->setname('good morning');
$c = $oa->getname();
$d =  $ob->getname();


下来我们使用debug先看一下$oa这个对象运行步骤


运行步骤:


之$oa = Single::getinstance();


1.会直接走getinstance这个方法


2.$instance这个值是用来存储实例的对象的,第一次进这个实例是没有对象的,所有会直接创建这个实例


3.返回实例出来的对象


屏幕快照 2022-05-12 下午1.46.36.png


运行步骤:


之$ob = Single::getinstance();


1.同样也会走getinstance()这个方法


2.但是这个时候$kaka已经有存在的实例了,所以就不会在新创建,直接return


屏幕快照 2022-05-12 下午1.46.25.png

从以上俩个方法就可以很明了的看出来,这段代码只会实例化对象一次,这也就是咱们的单例模式


最后俩个方法getname()肯定都是good morning了

相关文章
|
3月前
|
设计模式 安全 Java
Kotlin教程笔记(57) - 改良设计模式 - 单例模式
Kotlin教程笔记(57) - 改良设计模式 - 单例模式
35 2
|
28天前
|
设计模式 存储 前端开发
前端必须掌握的设计模式——单例模式
单例模式是一种简单的创建型设计模式,确保一个类只有一个实例,并提供一个全局访问点。适用于窗口对象、登录弹窗等场景,优点包括易于维护、访问和低消耗,但也有安全隐患、可能形成巨石对象及扩展性差等缺点。文中展示了JavaScript和TypeScript的实现方法。
|
1月前
|
设计模式 安全 Java
Kotlin教程笔记(57) - 改良设计模式 - 单例模式
Kotlin教程笔记(57) - 改良设计模式 - 单例模式
27 2
|
2月前
|
设计模式 Java 数据库连接
Java编程中的设计模式:单例模式的深度剖析
【10月更文挑战第41天】本文深入探讨了Java中广泛使用的单例设计模式,旨在通过简明扼要的语言和实际示例,帮助读者理解其核心原理和应用。文章将介绍单例模式的重要性、实现方式以及在实际应用中如何优雅地处理多线程问题。
42 4
|
2月前
|
设计模式 安全 Java
Kotlin教程笔记(57) - 改良设计模式 - 单例模式
Kotlin教程笔记(57) - 改良设计模式 - 单例模式
|
2月前
|
设计模式 缓存 数据库连接
深入理解PHP的面向对象编程与设计模式####
本文旨在通过实例解析PHP中面向对象编程的核心概念及其在实际开发中的应用,特别是单例模式、工厂模式和观察者模式等常见设计模式。文章将展示这些模式如何帮助开发者构建更加灵活、可维护的代码结构,以及它们在解决具体问题时的优势。 ####
|
2月前
|
设计模式 安全 Java
Kotlin教程笔记(57) - 改良设计模式 - 单例模式
Kotlin教程笔记(57) - 改良设计模式 - 单例模式
|
2月前
|
设计模式 存储 数据库连接
PHP中的设计模式:单例模式的深入理解与应用
【10月更文挑战第22天】 在软件开发中,设计模式是解决特定问题的通用解决方案。本文将通过通俗易懂的语言和实例,深入探讨PHP中单例模式的概念、实现方法及其在实际开发中的应用,帮助读者更好地理解和运用这一重要的设计模式。
24 1
|
3月前
|
设计模式 监控 中间件
深入理解PHP中的中间件模式
【10月更文挑战第20天】探索PHP编程世界中的“交通枢纽”——中间件模式。从代码层面剖析如何实现请求和响应的高效管理,以及如何在开发中应用这一模式来增强项目的扩展性和维护性。
|
2月前
|
设计模式 安全 Java
Kotlin教程笔记(57) - 改良设计模式 - 单例模式
Kotlin教程笔记(57) - 改良设计模式 - 单例模式
30 0