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

    单例模式:使类在内存中只有一个实例对象。

    实现单例的思路是:

         a 让外界不能创建对象

         b 类本身创建一个对象

         c  提供公共的访问方式  

    无论是懒汉式还是饿汉式都具备以上三点

    饿汉式:

    public class Student {
        //为了让getStudent()可以使用stu对象,需要加上static
        //为了不让外界直接访问,把访问修饰符设置为private  
        private static Student stu = new Student();
    
        //把构造方法私有,防止被外界创建实例
        private Student() {
        }
    
        //因为构造是私有的,外界不能直接创建此类对象,需要提供一个公共的方法用来得到实例
        //为了让外界即使不创建对象也能使用这个方法,需要用static修饰
        public static Student getStudent() {
            return stu;
        }
    
    }

         创建对象的操作被static修饰,也就是说,类一被内存加载,就会去创建对象(被static修饰的成员随着类的加载而加载),所以称做饿汉式

    懒汉式:

    public class Teacher {
    private static Teacher tea = null;
    private Teacher() { }
    //加上synchronized关键字使线程同步
    public static synchronized Teacher getTeacher(){ if(tea==null) tea = new Teacher(); return tea; } }

        如果不调用getTeacher()方法就不会去创建对象。体现了延迟加载(懒加载)的思想,懒汉式存在线程安全问题,需要加上synchronized关键字,使线程同步。

    饿汉式:

  • 相关阅读:
    重构了一波代码,聊聊后端也聊聊游戏后端
    浅谈游戏开发中常见的设计模式
    一次查内存泄露
    sql语句技巧
    python后端链接数据库-----MySQLdb
    web的应用模式
    静态文件
    django配置文件
    视图
    django子应用
  • 原文地址:https://www.cnblogs.com/sflik/p/4829470.html
Copyright © 2011-2022 走看看