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

    • 设计模式是在大量的实践中总结和理论化之后优选的代码结构、编程风格、以及解决问题的思考方式。设计模式就像是经典的棋谱,不同的棋局,我们用不同的棋谱,免去我们自己再思考和摸索。
    • 所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法,如果我们要让类在一个虚拟机中只能产生一个对象,我们首先必须将类的构造器的访问权限设置为private,这样,就不能用new操作符在类的外部产生类的对象了,但在类内部仍可以产生该类的对象,因为在类的外部开始还无法得到类的对象,只能调用该类的某个静态方法以返回类内部创建的对象,静态方法只能访问类中的静态成员变量,所以,指向类内部产生的该类对象的变量也必须定义成静态的。

    1.实现:

    package Singleton;
    
    public class Test {
        
        Bank b1=Bank.getInstance();
        Bank b2=Bank.getInstance();
        
    }
    
    // 饿汉式
    class Bank{
        
    //    1.私有化类的构造器
        private Bank() {
            
        }
        
    //    2.内部创建类的对象
    //    4.要求此对象必须也声明为静态的
        private static Bank instance=new Bank();
        
    //    3.提供公共的静态的方法,返回类的对象
        public static Bank getInstance() {
            return instance;
        }
    }
    
    // 懒汉式
    class Order{
        
    //    1.私有化类的构造器
        private Order() {
            
        }
        
    //    2.声明当前类对象,没有初始化
    //    4.此对象也必须声明为static的
        private static Order instance=null;
        
    //    3。声明public、static的返回当前类对象的方法
        public static Order getInstance() {
            if(instance==null) {
                instance=new Order();
            }
            return instance;
        }
        
    }

     2.如何区分饿汉式和懒汉式

    饿汉式:

    • 坏处,对象加载时间过长
    • 好处:饿汉式是线程安全的

    懒汉式:

    • 好处,延迟对象的创建
    • 目前的写法坏处:线程不安全

    3.单例模式的使用场景

    单例模式的优点:

      由于单例模式只生成一个实例,减少了系统性能开销,当一个对象的产生需要比较多的资源时,如读取配置、产生其他依赖对象时,则可以通过在应用启动时直接产生一个单例对象,然后永久驻留内存的方法来解决。

    ·

  • 相关阅读:
    suse12安装详解
    Centos7上部署openstack mitaka配置详解(将疑难点都进行划分)
    菜鸟帮你跳过openstack配置过程中的坑[文末新添加福利]
    openstack中dashboard页面RuntimeError: Unable to create a new session key. It is likely that the cache is unavailable.
    Multiple network matches found for name 'selfservice', use an ID to be more specific.报错
    查看 SELinux状态及关闭SELinux
    SELinux深入理解
    IP地址、子网掩码、网络号、主机号、网络地址、主机地址
    Oracle job procedure 存储过程定时任务
    POI文件导出至EXCEL,并弹出下载框
  • 原文地址:https://www.cnblogs.com/codexlx/p/13541579.html
Copyright © 2011-2022 走看看