AS3.0 设计模式学习-单例模式Singleton

今天在做游戏的时候,需要用到单例模式,所以在这做一些笔记,不管大家有啥感想都请留下您宝贝的意见 :-)

先看段代码

package com
{
      
public  class MyClass
      
{
            
static private var _instanse:MyClass;
            
private function MyClass()
            
{
            }


            
public static function getInstanse():MyClass
            
{
                  
if(MyClass._instanse==null)
                  
{
                        _instanse
=new MyClass();
                  }

                  
return _instanse;
            }


            
public var myArr:Array=new Array();
      }

}


使用方法:

import com;
private function test():void
{
      MyClass.getInstanse().myArr.push(”Test String”);
}


下面,是需要注意的点:

      1、_instanse:这个是类的实例(必须声明为static),在内存空间中可以保证此类只有这么一个类。同时也就保证了对象中的属性在内存空间中也是唯一的。

      2、private: 构造方法让其private,杜绝了使用new进行实例化。

      3、static:必须保证getInstanse()这个方法是静态的。不然会出错。

      4、new Array(); 如果类中的属性中有非基本类型(int,string,float等)外的属性,切记要声明对象。

Attention:因为AS不支持多线程,所以不需要考虑多线程的问题,但是如果在C#这样的支持多线程的语言,要注意不要多线程冲突。

适用范围:

      一般用于保存系统的配置信息。需要在不同的类中调用,且信息是唯一的。

 

posted @ 2009-06-19 10:39  ∨、放卟丅。  阅读(996)  评论(4)    收藏  举报