zoukankan      html  css  js  c++  java
  • 单例设计模式---懒汉式和饿汉式

    概念:在某些特殊场合中,一个类对外提供且只提供一个对象时,这样的类叫 做单例类,而设计单例的流程和思想叫做单例设计模式(如:。
     
    单例设计模式的实现流程
    • 私有化构造方法,使用private关键字修饰。

    • 声明本类类型的引用指向本类类型的对象,并使用private static关键字共同修饰。

    • 提供公有的get方法负责将对象返回出去,并使用public static关键字共同修饰。

    单例设计模式的实现方式

    • 单例设计模式的实现方式有两种:饿汉式 和 懒汉式,在以后的开发中推 荐饿汉式。

    code-饿汉式
    public class Singleton {

    // 2.声明本类类型的引用指向本类类型的对象,使用private static关键字共同修饰
    private static Singleton sin = new Singleton(); // 饿汉式

    // 1.私有化构造方法,使用private关键字修饰
    private Singleton() {}

    // 3.提供公有的get方法负责将对象返回出去,使用public static关键字共同修饰
    public static Singleton getInstance() {
    return sin;
    }
    }

     测试代码:

    public class SingletonTest {

    public static void main(String[] args) {

    src.Singleton s1 = Singleton.getInstance();
    src.Singleton s2 = Singleton.getInstance();
    System.out.println(s1 == s2); // true
    }
    }

    code--懒汉式
    public class Singleton {

    // 2.声明本类类型的引用指向本类类型的对象,使用private static关键字共同修饰
    private static src.Singleton sin = null; // 懒汉式

    // 1.私有化构造方法,使用private关键字修饰
    private Singleton() {}

    // 3.提供公有的get方法负责将对象返回出去,使用public static关键字共同修饰
    public static Singleton getInstance() {
    if(null == sin) {
    sin = new Singleton();
    }
    return sin;
    }
    }
    懒汉式和饿汉式区别:

            懒汉式是典型的时间换空间,也就是每次获取实例都会进行判断,看是否需要创建实例,浪费判断的时间。当然,如果一直没有人使用的话,那就不会创建实例,则节约内存空间。

            饿汉式是典型的空间换时间,当类装载的时候就会创建类实例,不管你用不用,先创建出来,然后每次调用的时候,就不需要再判断了,节省了运行时间。




  • 相关阅读:
    好看的WEB配色..留的美化界面用..
    为phpcms v9 后台增加按类别查找的功能,且不影响升级。
    OS开发过程中常用开源库
    stanford《Developing Apps for ios》第五课demo要点
    C语言简陋的播放mp3代码
    编译ffmpeg for iOS,并调试iFrameExtractor demo
    windows下配置nginx pathinfo模式,支持thinkphp
    初学GTK+2.0与glade的一些网络资源
    在Centos6.3中桥接方式配置vm virtualbox中的系统网络
    Foundation的基本操作—字符串、数组、字典、集合
  • 原文地址:https://www.cnblogs.com/goldenwangyi/p/15031617.html
Copyright © 2011-2022 走看看