单例模式中的懒汉模式和饿汉模式

晚上在弄听力类型的课件,突然想到一个问题就是我定义的Sound类变量是在外实例化呢,还是在方法类去实例化呢。然后去QQ上问了一个人,他居然通语音跟我讲。

问题:

package com.huadoo.views 
{
    import flash.media.Sound;
    import flash.media.SoundChannel;
    
/**
     * ...
     * @author sange
     
*/
    public class Hearing
    {
        private 
var sound:Sound;        
        
        public 
function Hearing() 
        {
            init();
        }
        
        private 
function init():void
        {
            sound 
= new Sound();
        }
    }
}

   2.方法外部实例化 代码:

package com.huadoo.views 
{
    import flash.media.Sound;
    import flash.media.SoundChannel;
    
/**
     * ...
     * @author sange
     
*/
    public class Hearing
    {
        private 
var sound:Sound = new Sound();        
        
        public 
function Hearing() 
        {
            
        }        
    }
}

当时问他是 这两种有什么区别,然后他就跟我讲到设计模式,设计模式虽然不是全部懂,但还是懂几种的。

   但他问我知不知道懒汉模式和饿汉模式的时候,我居然是没听过。哎,这看书白看了。不过也不能怪我,他问我的这个设计模式跟java有关。

跟我讲什么是懒汉模式和饿汉模式,只记得:

懒汉模式:要用的时候就去实例化它(以上问题第1种)

饿汉模式:使用之前去实例化它(以上问题第2种)

让我想起了AS3的单例模式了,原来那两种写法叫懒汉模式和饿汉模式,这回又长知识了,呵呵。

package 
{
    
/**
     * 懒汉模式
     * @author sange
     
*/
    public class Singleton
    {
        private static 
var _instance:Singleton;
        
        public 
function Singleton() 
        {
            
        }
        
        public static 
function getInstance():Singleton
        {
            
if (_instance == null)
            {
                _instance 
= new Singleton();
            }
            
return _instance;
        }
    }
}
package 
{
    
/**
     * 饿汉模式
     * @author sange
     
*/
    public class Singleton
    {
        private static var _instance:Singleton = new Singleton();
        
        public 
function Singleton() 
        {
            
        }
        
        public static 
function getInstance():Singleton
        {            
            
return _instance;
        }
    }
}

 

原文地址:https://www.cnblogs.com/sange/p/1651829.html