单例模式

简单来说,单例模式,就是创建的实例必须是唯一的。而不是通过new来实例化大量的对象。在这里,我用php代码进行了演示。

主要特点:

1、有且只有一个实例
2、只能自己实例化自己
3、可以被别人获取

这样就引申了其中方法的设置

1、构造方法必须设置为private,这样其他人就无法进行新的实例了,保证了唯一性
2、拥有保存类实例的静态属性
3、提供一个公有方法,让其他人来访问实例

如下代码:

<?php

class Test{
    
    private $name;
    
    private function __construct(){//防止其他人进行实例化
        
    }
    
    static public $instance;
    
    static public function get_instance(){
        if(!self::$instance){
            self::$instance = new static();
        }
        return self::$instance;
    }
    
    
}

var_dump(Test::get_instance());
var_dump(Test::get_instance());
?>

可以看到他们共用了同一个对象实例

image.png
用处

可用于数据库、redis等资源连接

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 简单的说,一个对象(在学习设计模式之前,需要比较了解面向对象思想)只负责一个特定的任务; 单例类: 1、构造函数需...
    人在码途阅读 161评论 0 1
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,845评论 18 139
  • 1 场景问题# 1.1 读取配置文件的内容## 考虑这样一个应用,读取配置文件的内容。 很多应用项目,都有与应用相...
    七寸知架构阅读 6,878评论 12 68
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,742评论 18 399
  • 前段时间在码农周刊上看到了一个不错的学习Python的网站(Code Cademy),不是枯燥的说教,而是类似于游...
    秦梦阅读 2,725评论 2 7