zoukankan      html  css  js  c++  java
  • Java设计模式——单例模式

    Java设计模式——单例模式

    摘要:本文主要介绍了Java设计模式中的单例模式。

    部分内容来自以下博客:

    https://www.cnblogs.com/zuoxiaolong/p/pattern2.html

    什么是单例模式

    所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例。

    我们单例模式所期待的目标或者说使用它的目的,是为了尽可能的节约内存空间,减少无谓的GC消耗,并且使应用可以正常运作。

    我稍微总结一下,一般一个类能否做成单例,最容易区别的地方就在于,这些类,在应用中如果有两个或者两个以上的实例会引起错误,又或者我换句话说,就是这些类,在整个应用中,同一时刻,有且只能有一种状态。

    饿汉式

    饿汉式会在访问Singleton的其他静态域的时候,就进行实例的初始化,而事实是可能我们从始至终就没有使用这个实例,造成内存的浪费。

    不过在有些时候,直接初始化单例的实例也无伤大雅,对项目几乎没什么影响,比如我们在应用启动时就需要加载的配置文件等,就可以采取这种方式去保证单例。

     1 public class Singleton {
     2     // 一个静态实例
     3     private static Singleton singleton = new Singleton();
     4     // 私有化构造函数
     5     private Singleton() {}
     6     // 提供一个公有的静态方法返回一个静态的单一实例
     7     public static Singleton getInstance() {
     8         return singleton;
     9     }
    10 }

    懒汉式

    懒汉式的方式不会在一开始就创建实例,只有在用到的时候才会创建实例。

     1 public class Singleton {
     2     // 一个静态实例
     3     private static Singleton singleton;
     4     // 私有化构造函数
     5     private Singleton() {}
     6     // 提供一个公有的静态方法返回一个静态的单一实例
     7     public static Singleton getInstance() {
     8         if (singleton == null) {
     9             singleton = new Singleton();
    10         }
    11         return singleton;
    12     }
    13 }
  • 相关阅读:
    [Kali_Debian] 清除无用的库文件(清理系统,洁癖专用)-布布扣-bubuko.com
    给 Linux 系统“减肥”,系统垃圾清理_系统安装与配置管理_Linux Today
    命令行选项
    SQL 优化
    精通initramfs构建step by step
    常用正则表达式
    Chrome_浏览器开发人员工具
    按键精灵
    CMD命令大全
    50种折纸方法
  • 原文地址:https://www.cnblogs.com/shamao/p/10918191.html
Copyright © 2011-2022 走看看