9RIA-沐枫 发表于 2018-2-6 20:56:19

【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]
查看完整版本: 【9RIA—沐枫】—【基础小知识】第22节(单例模式)

感谢所有支持论坛的朋友:下面展示最新的5位赞助和充值的朋友……更多赞助和充值朋友的信息,请查看:永远的感谢名单

SGlW(66139)、 anghuo(841)、 whdsyes(255)、 longxia(60904)、 囫囵吞澡(58054)

下面展示总排行榜的前3名(T1-T3)和今年排行榜的前3名的朋友(C1-C3)……更多信息,请查看:总排行榜今年排行榜

T1. fhqu1462(969)、 T2. lwlpluto(14232)、 T3. 1367926921(962)  |  C1. anghuo(147)、 C2. fdisker(27945)、 C3. 囫囵吞澡(58054)