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关键字,使线程同步。

    饿汉式:

  • 相关阅读:
    c# 方法重载
    c# propertyGrid下拉选项
    c# 枚举类型
    c# socket编程
    读书笔记之ado.net entity framework
    c# delegate的invoke和bejinInvoke的区别
    C# 读书笔记之类与结构体
    c#笔记之启动新线程
    c# listview的使用
    visual studio2013 改变匹配括号的颜色
  • 原文地址:https://www.cnblogs.com/sflik/p/4829470.html
Copyright © 2011-2022 走看看