zoukankan      html  css  js  c++  java
  • 单例模式中的懒汉模式和饿汉模式

    晚上在弄听力类型的课件,突然想到一个问题就是我定义的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;
            }
        }
    }

     

  • 相关阅读:
    juc原子类之五:AtomicLongFieldUpdater原子类
    DICOM:C-GET与C-MOVE对照剖析
    android createbitmap函数内存溢出,求解怎样进行处理out of memory溢出问题
    TRIZ系列-创新原理-32-改变颜色原理
    FP-Growth算法之频繁项集的挖掘(python)
    个人年终总结
    J2EE之ANT
    log4net 使用与配置 每天一份log文件
    Android 完美实现图片圆角和圆形(对实现进行分析)
    Unity3d修炼之路:载入一个预制体,然后为该对象加入组件,然后查找对象,得到组件。
  • 原文地址:https://www.cnblogs.com/sange/p/1651829.html
Copyright © 2011-2022 走看看