单例模式 ﹏ヽ暗。殇╰゛Y 2022-05-09 15:46 178阅读 0赞 **简介:** 单例模式是一种常用的软件设计模式,其定义是单例对象的类只能允许一个实例存在。 许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。比如在某个服务器程序中,该服务器的配置信息存放在一个文件中,这些配置数据由一个单例对象统一读取,然后服务进程中的其他对象再通过这个单例对象获取这些配置信息。这种方式简化了在复杂环境下的配置管理。 **概述**: 定义一个统一的全局变量可以确保对象随时可以被访问,但不能防止创建多个对象。 一个最好的办法就是让类自身负责创建和保存它的唯一实例,并保证不创建其他实例,它还提供了一个访问该实例的方法,这就是单例模式的动机。 **基本实现思路:** 单例模式要求类能够有返回对象一个引用(永远是同一个)和一个获得该实例的方法(必须是静态方法,通常使用getInstance这个名称)。 单例的实现主要是通过以下两个步骤: 将该类的构造方法定义为私有方法,这样其他处的代码就无法通过调用该类的构造方法来实例化该类的对象,只有通过该类提供的静态方法来得到该类的唯一实例; 在该类内提供一个静态方法,当我们调用这个方法时,如果类持有的引用不为空就返回这个引用,如果类保持的引用为空就创建该类的实例并将实例的引用赋予该类保持的引用。 **1.懒汉式(这里的懒是指不在类一加载时就创建实例,而是在使用该实例时再创建实例):** public class Singleton1 { //私有构造,类只能在类内部创建 private Singleton() { } //私有变量保存实例,外界不能直接获取,只能通过提供的公共方法获取。 private static Singleton1 singleton1 = null; public static synchronized Singleton1 getInstance() { if(singleton1 == null) { singleton1 = new Singleton1(); } return singleton1; } } **2.饿汉式单例模式(这里的饿是指在加载类的时候就会创建类的单例,并保存在类中。):** public class Singleton2 { //私有构造 private Singleton2(){}; //私有变量,保存类实例,并在类一加载时就实例化,保存在变量中; private static Singleton2 singleton2 = new Singleton2(); //提供公共的方法方法获取实例 public static Singleton2 getInstance() { return singleton2; } } **3.类级内部类方法:** > (饿汉式会占用较多的空间,因为其在类加载时就会完成实例化, > > * 而懒汉式又存在执行速率慢的情况,双重加锁机制呢?又有执行效率差的毛病, \* > 有没有一种完美的方式可以规避这些毛病呢?貌似有的,就是使用类级内部类结 \* 合多线程默认同步锁,同时实现延迟加载和线程安全。) public class Singleton3 { private Singleton3(){}; private static class SingletonBuilder { private static final Singleton3 singleton3 = new Singleton3(); } public static final Singleton3 getInstance() { return SingletonBuilder.singleton3; } }
相关 单例模式 http://blog.csdn.net/zhengzhb/article/details/7331369 定义:确保一个类只有一个实例,而且自行实例化并向整个系统提供这个实 曾经终败给现在/ 2022年09月25日 15:30/ 0 赞/ 265 阅读
相关 单例模式 class sigle{ protected static $ins = null; public function getIns(){ 深藏阁楼爱情的钟/ 2022年07月20日 20:27/ 0 赞/ 286 阅读
相关 单例模式 简介: 单例模式是一种常用的软件设计模式,其定义是单例对象的类只能允许一个实例存在。 许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。比如在 ﹏ヽ暗。殇╰゛Y/ 2022年05月09日 15:46/ 0 赞/ 179 阅读
相关 单例模式 <table> <tbody> <tr> <td style="vertical-align:top;width:.6868in;"> <p style 矫情吗;*/ 2021年11月22日 10:52/ 0 赞/ 320 阅读
相关 单例模式 单例模式 单例模式(SingletonPattern)是java中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 这种模式涉及 红太狼/ 2021年11月16日 05:30/ 0 赞/ 340 阅读
相关 单例模式 1、懒汉式,线程不安全 是否 Lazy 初始化:是 是否多线程安全:否 实现难度:易 描述:这种方式是最基本的实现方式,这种实现最大的问题就是不支持多线程。因为没有 以你之姓@/ 2021年11月11日 17:44/ 0 赞/ 304 阅读
相关 单例模式 应用场景 1. windows的任务管理器 2. 网站的计数器 3. 应用程序的日志 4. 数据库连接池,因为数据库连接是一种数据库资源。数据库软件系统中使用数据 r囧r小猫/ 2021年11月11日 15:08/ 0 赞/ 377 阅读
相关 单例模式 单例模式有以下特征: 1. 只有一个对象存在 2. 对象的实例化必须在类中实现 一、懒汉模式(线程不安全) package com.kevin; 谁借莪1个温暖的怀抱¢/ 2021年10月01日 07:48/ 0 赞/ 345 阅读
相关 单例模式 1.定义 单例模式是一种常用的软件设计模式,其定义是单例对象的类只能允许一个实例存在。 2.实现步骤 1. 将该类的构造方法定义为私有方法,这样其他处 小咪咪/ 2021年09月27日 13:56/ 0 赞/ 427 阅读
相关 单例模式 单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点。 通常我们可以让一个全局变量使得一个对象被访问,但它不能防止你实例化多个对象。一个最好的办法就是,让类自身负责 Dear 丶/ 2021年09月17日 02:10/ 0 赞/ 361 阅读
还没有评论,来说两句吧...