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 }
  • 相关阅读:
    [UE4]蓝图中清空变量值或设置为null
    [UE4]运行时脱离视角,进入自由视角
    [UE4]扔枪
    [UE4]反射
    为帮助保护你的安全,您的Web浏览器已经限制此文件显示可能访问您的计算机的活动内容
    [UE4]根据名字调用函数(蓝图)
    [UE4]移除UI(User Widget)并销毁
    [UE4]Return Node节点好用法
    [UE4]关于分支Sequence和条件分支的组合用法
    [UE4]隐藏对象Set Visibility
  • 原文地址:https://www.cnblogs.com/shamao/p/10918191.html
Copyright © 2011-2022 走看看