• 设计模式——单例模式(饿汉式、懒汉式)


    一、设计模式之单例模式

              设计模式:解决每一类问题最行之有效的方法  GOF 23种

    java中23种设计模式

    单例设计模式:解决一个类在内存中只存在一个对象


    想要保证对象唯一:

    1、为了避免其他程序过多建立该类对象,先禁止其他程序建立该类对象

    2、还为了让其他程序可以访问到该类对象,只好在本类中,定义一个对象

    3、为了方便其他程序对自定义对象的访问,可以对外提供一些访问方式


    这三步怎么用代码体现呢?

    1、将构造函数私有化

    2、在类中创建一个本类对象

    3、提供一个方法可以获取该对象


    对于事物该怎么描述还怎么描述。

    当需要将这事物的对象保证在内存中唯一时,就将这三步加上即可。


    代码实例:

    class Single
    {
    	private int num;
    	public void setNum(int num)
    	{
    		this.num=num;
    	}
    	public int getNum()
    	{
    		return num;
    	}
    	private Single(){} //***第一步***构造函数私有,不能在类外面定义对象
     
    	private static Single s=new Single(); //***第二步***在该类中定义一个对象
    
    	public static Single getInstance()
    	{
    		return s;  //***第三步***单例:获取该类的一个实例********
    	}
    }
    
    class SingleDemo 
    {
    	public static void main(String[] args) 
    	{
    
    		Single s1=Single.getInstance();
    		Single s2=Single.getInstance();
    		s1.setNum(23);
    		System.out.println(s2.getNum());
    		//Single ss=Single.getInstance();
    		//Single s1=new Single();
    		//Single s2=new Single();
    		//s1.setNum(30);
    		//System.out.println(s2.getNum());
    	}
    }<strong>
    </strong>

    二、饿汉式

    这个是先初始化对象称为:饿汉式。
    Single类一进内存就已经创建好了对象。

    class Single
    {
    	private Single(){}
    	private static Single s=new Single();
    	public static Single getInstance()
    	{
    		return s;
    	}
    }


    三、懒汉式

    方法是方法被调用时,才初始化,也叫做对象的延时加载称为懒汉式。
    Single类进内存,对象还没有存在,只有调用了getInstance方法时才建立对象。

    class Single
    {
    	private static Single s=null;
    	private Single(){}
    	public static Single getInstance()
    	[
    		if (s==null)   //利用锁和双重判断解决现成问题
    		{
    			syschronized(Single.class)
    			{
    				if(s=null)
    					s=new Single();
    			}
    		}
    		return s;
    	}
    }


    四、优先选择

    记住原则:定义单例,建议使用饿汉式


  • 相关阅读:
    js键盘事件以及键盘事件拦截
    GO-&获取地址与*解引用
    Go-map
    第22课
    第21课
    第20课
    基于spring+quartz的分布式定时任务框架
    DeepLearning (三) 预处理:主成分分析与白化
    白化whitening
    如何使用RestTemplate访问restful服务
  • 原文地址:https://www.cnblogs.com/xiangyangzhu/p/4260844.html
Copyright © 2020-2023  润新知