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

    单例设计模式:保证一个类仅有一个实例,并提供一个访问他的全局访问点。

    1、构造方法是私有化

    2、声明一个本类对象

    3、给外部提供一个静态方法获取对象实例

    两种实现方式:

    1、饿汉式:在类被加载后对象被创建,到程序结束后释放

    2、懒汉式:在第一次调用getSingleton方法时对象被创建,到程序结束后释放

    使用私有构造方法+静态方法   来实现工具类     如:math工具类(全部使用静态方法,耗费内存)

    适用场景:

    1.在设计一些工具类的时候(通常工具类,只有功能方法,没有属性)

    2.工具类可能被频繁调用

    使用单例模式的目的:

    节省重复创建对象所带来的内存消耗,提高效率

    Demo如下:

    public class Test {
        public static void main(String[] args) {
            Singleton s1 = Singleton.getSingleton();
            Singleton s2 = Singleton.getSingleton();
            System.out.println(s1==s2);//打印结果为true,说明ok
            Singleton1 s3 = Singleton1.getSingleton();
            Singleton1 s4 = Singleton1.getSingleton();
            System.out.println(s3==s4);//打印结果为true,说明ok
    
        }
    }
    //饿汉式,占用内存时间长,效率高
    class Singleton{
        private Singleton(){}
        private static Singleton s= new Singleton();
        public static Singleton getSingleton(){
            return s;
        }
        public void print(){
            System.out.println("ok");
        }
    }
    //懒汉式,占用内存时间段,效率低
    class Singleton1{
        private Singleton1(){}
        private static Singleton1 s;
        public static Singleton1 getSingleton(){
            if(s==null){
                s= new Singleton1();
            }
            return s;
        }
        public void print(){
            System.out.println("ok");
        }
    }
    
  • 相关阅读:
    菜单、toast、对话框的使用
    对话框应用反射销毁
    java随机汉字生成
    Android从主界面退出
    Android获取网络状态
    ssh secure shell 乱码问题
    MongDB安装使用
    安装scrapy
    列表查找以及二分查找
    Tuple、list的区别以及dict和set
  • 原文地址:https://www.cnblogs.com/wenbiquan/p/11082460.html
Copyright © 2011-2022 走看看