zoukankan      html  css  js  c++  java
  • Java设计模式--单列设计模式

    设计模式:解决某一类问题行知最有效的方法。java有23种设计模式

    单列设计模式:

    解决一个类在内存中只存在一个对象

    思路:(要保证对象的唯一性)

    1.为了避免其它程序建立该对象,先禁止替他类创建改对象,(构造函数私有化)

    2.还能让其他程序可以访问到该对象,只能在该类中自己生成一个对象

    3.为了其他程序可以访问到当中的值,可以设计一些方法获取到值。

    当然他们当中有两种方式:懒汉式,饿汉式。

    (其中两者的区别是在内存当中的何时创建)

    下面是饿汉式的代码:(写法)(开发一般用这个方法)

    //创建一个学生类的单列设计模式
    class Student
    {
        private String name="zhulang"; 
        //构造函数私有化
        private Student(){};
        //静态自己创建自己的对象
        private static Student s =new Student();
        
        //静态方法获取到该对象
        public static String getInstance()
        {
            return s.name;
        }

    懒汉式:(面试时一般用这个)

    原理,对象是在方法被调用时,才初始化,也叫做对象的延时加载

    如下:只有Student类进内存。但是对象没有存在,只getInstance方法是才被创建

    class Student
    {
        private String name = "zhulang";
    
        // 构造函数私有化
        private Student()
        {
        };
    
        // 静态自己创建自己的对象
        private static Student s = null;
    
        // 静态方法获取到该对象
        public static String getInstance()
        {
            //对象是否被其他程序调用 
            if (s == null)
            {
                //上锁
                synchronized (Student.class)
                {
                    if (s == null)
                        s = new Student();
                }
            }
            return s.name;
        }
    
    }
  • 相关阅读:
    ETL利器Kettle实战应用解析系列三 【ETL后台进程执行配置方式】
    ETL利器Kettle实战应用解析系列二 【应用场景和实战DEMO下载】
    Kettle使用介绍
    java反射详解
    request详解
    java访问接口
    原生JS写Ajax的请求函数-原生ajax
    阿拉伯数字金额转换为大写
    深入理解Java中的String
    Strust2中,加入监听器来判断用户是否在session中存在。
  • 原文地址:https://www.cnblogs.com/ganwei/p/4556195.html
Copyright © 2011-2022 走看看