【9RIA—沐枫】—【基础小知识】第22节(单例模式)
转载:9RIA游戏开发者社区(天地会)作者:沐枫(原天地会大神)
【基础小知识】系列教程(总目录)——沐枫大神出品
先上代码:
SingleCase类
package Other
{
public class SingleCase
{
public var clothing:String;
public var weapons:String;
public static var thisSingleCase:SingleCase//声明一个静态的本类的成员变量
public function SingleCase()
{
}
public static function GetSingleCase():SingleCase
{
//没有值就实例化一个,否则就直接用,即至始至终只有这一个实例
if(thisSingleCase==null)
{
thisSingleCase=new SingleCase();
}
return thisSingleCase;
}
}
}
主类调用
package
{
import Other.SingleCase;
import flash.display.Sprite;
public class SingletonPattern extends Sprite
{
public function SingletonPattern()
{
var SingleCase1:SingleCase=SingleCase.GetSingleCase();//不用new一个实例,否则就不叫单例了
SingleCase1.clothing="蟒袍";
var SingleCase2:SingleCase=SingleCase.GetSingleCase();
SingleCase2.weapons="封魔剑";
var SingleCase3:SingleCase=SingleCase.GetSingleCase();
trace("我的服装:"+SingleCase3.clothing+"\n我的武器:"+SingleCase3.weapons);//我的服装:蟒袍我的武器:封魔剑
trace("--------------------------------------------------------------");
trace("单例模式:有且只有一个\n 静态成员变量\n 静态成员方法\n 静态的都是不可继承的");
}
}
}
如上,就是一个简单的单例模式,可应用方面:如页游里玩家的背包只有一个,所以总不能每点击一下就出现一个吧,用单例模式很好的解决了这个问题
源文件在这里:
页:
[1]