-
设计模式--单件模式 - [设计模式]
2009-08-11
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://bigsnail.blogbus.com/logs/43955807.html
单件模式: 保证一个类有且仅有一个实例,并提供一个供全局的访问方法。
AS3中类的构造函数不能private,所以实现单件模式需要变通一下.单件模式在as3中的实现概括的说就是在class内再建一个只有该class自己内访问的空类作为new该class的入口参数,这样只有class自己才能new自己,任何外界都不能new,其次通过getInstance返回一个静态的对象,作为全局唯一的。
平时用到单件模式的情况:比如单人游戏中的HERO,全局必须保证最多一个HERO.在常用的应用软件中ALERT组件(比如警告框),一旦弹出,必须要用户确定这个时候不能有其他操作.
<code>
ActionScript 3语言: Codee#7198package
{
public class SingleClass
{
private static var SINGLE:SingleClass;
public var test:uint = 0;
public function SingleClass(p:Private)
{
if(p==null) throw new Error("单件模式,只能用getInstance()方法获取");
}
public static function getInstance():SingleClass
{
if(SINGLE==null) SINGLE = new SingleClass(new Private());
return SINGLE;
}
}
}
class Private{}测试
ActionScript 3语言: Codee#7199package
{
import flash.display.Sprite;
public class SinglePatten extends Sprite
{
public function SinglePatten()
{
var a:SingleClass = SingleClass.getInstance();
trace(a.test);//输出0
a.test = 200;
var b:SingleClass = SingleClass.getInstance();
trace(b.test);//输出200 和a其实是同一个实例
}
}
}
:历史上的今天:
数据结构---插入排序 2009-08-11数据结构---单链表 2009-08-11数据结构--队列 2009-08-11数据结构---栈 2009-08-11设计模式 -- 策略模式 2009-08-11
收藏到:Del.icio.us
<< 数据结构---插入排序 | 首 页 |







