单例模式中的懒汉模式和饿汉模式
2010-01-19 21:09
225 查看
晚上在弄听力类型的课件,突然想到一个问题就是我定义的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;
}
}
}
问题:
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;
}
}
}
相关文章推荐
- 单例模式的饿汉和懒汉
- 单例模式有五种写法:懒汉、饿汉、双重检验锁、静态内部类、枚举。
- java的设计模式之单利设计模式(饿汉和懒汉)
- java单例饿汉和懒汉模式
- 比饿汉单例模式和懒汉单例模式更好的静态内部类单例模式
- 懒汉模式和饿汉模式
- 从java.lang.Runtime看单例懒汉饿汉模式的选择
- 单例模式之饿汉VS懒汉
- C++中的单例模式(懒汉模式、饿汉模式及线程安全问题)
- Singleton 单例模式(懒汉方式和饿汉方式)
- java 单例模式之线程安全的饿汉模式和懒汉模式
- 懒汉模式和饿汉模式
- Singleton 单例模式(懒汉方式和饿汉方式)
- 单例模式--饿汉和懒汉异同
- Java设计模式之单例模式(懒汉/饿汉)
- 单列模式,懒汉 ,饿汉
- 【4月21日】单例模式:饿汉和懒汉
- 创建型模式.单例模式-懒汉、饿汉、枚举、原子
- Java单例模式之饿汉模式与懒汉模式
- C++的单例模式与线程安全单例模式(懒汉/饿汉)