zoukankan      html  css  js  c++  java
  • 23种设计模式之单列模式案例

    单例设计模式:
        (1)设计模式:
            解决某类问题行之有效的方法,是一种思想,是规律的总结
        (2)用来保证某个类在内存中只有一个对象
        (3)保证唯一性的思想及步骤
            **为了避免其他程序建立该类对象,先禁止其他程序建立该类对象,即将构造函数私有化
            **为了其他程序访问到该类对象,须在本类中创建一个该类私有对象
            **为了方便其他程序访问到该类对象,可对外提供一个公共访问方式

        比如API中的Runtime类就是单例设计模式。

        (4)单例设计模式的两种方式
            A:饿汉式 当类加载的时候,就创建对象。    
           //单列模式封装返回结果
        public class ResultUtil{ 
            // 将自身实例化对象设置为一个属性,并用static、final修饰
            private static final ResultUtil instance = new ResultUtil();
           // 构造方法私有化
           private ResultUtil() {}
           // 静态方法返回该实例
           public static ResultUtil getInstance() {
                     return instance;
        }
           public String getPage(String page){
                  return page; }
         }
            

    B:懒汉式 当使用的使用,才去创建对象。
            class Student
            {
                private Student(){}

                private static final Student s = null;
                
                public static Student getInstance()
                {
                    if(s==null)
                    {
                        //线程1就进来了,线程2就进来了。
                        s = new Student();
                    }
                    return s;
                }
            }
        饿汉式和懒汉式的区别:
            **
            饿汉式是类一加载进内存就创建好了对象;
            懒汉式则是类才加载进内存的时候,对象还没有存在,只有调用了getInstance()方法时,
            对象才开始创建。
            **
            懒汉式是延迟加载,如果多个线程同时操作懒汉式时就有可能出现线程安全问题,解决线程安全问题
            可以加同步来解决。但是加了同步之后,每一次都要比较锁,效率就变慢了,
            所以可以加双重判断来提高程序效率。
            注:开发常用饿汉式,因为饿汉式简单安全。懒汉式多线程的时候容易发生问题

  • 相关阅读:
    Java反射机制(创建Class对象的三种方式)
    webservice原理及基于cxf开发的基本流程
    开始打开eclipse .exe时候显示找不到jre路径
    Token验证详解
    RPC远程协议之Thrift入门
    RPC远程协议之原理分析
    Jmeter进行性能测试时多台负载机的配置方法
    Jmeter分布式部署测试-----远程连接多台电脑做压力性能测试
    Java 集合系列05之 LinkedList详细介绍(源码解析)和使用示例
    理解Cookie和Session机制
  • 原文地址:https://www.cnblogs.com/HYV587/p/12657949.html
Copyright © 2011-2022 走看看