最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Actionscript 3.0中Singleton實(shí)現(xiàn) 修正篇

 更新時(shí)間:2009年02月16日 12:38:03   作者:  
說(shuō)明:上一篇"一個(gè)簡(jiǎn)單的Actionscript的單態(tài)模式類(lèi)"的實(shí)現(xiàn)在Actionscript中報(bào)錯(cuò),具體原因會(huì)在這篇Blog中詳細(xì)說(shuō)明。
在前面的blog中,代碼如下:
復(fù)制代碼 代碼如下:

package Src
{
/**
* Written by Leezhm, 10th February, 2009
* Contact : Leezhm@126.com
*
* An example of singleton class
**/
public class CSingleton
{
// variable
private static var _instance = new CSingleton();
protected function CSingleton()
{
}
public static function getInstance():CSingleton
{
if (undefined != CSingleton._instance)
{
return CSingleton._instance;
}
else
{
throw Error("Could not create the instace!");
}
}
}
}

Rebuild會(huì)出現(xiàn)1153:A constructor can only be declared public.錯(cuò)誤,錯(cuò)誤原因在錯(cuò)誤描述語(yǔ)句描述的很清楚,也就是Constructor在Actionscript中只能聲明為public。而我當(dāng)時(shí)寫(xiě)的時(shí)候,犯了習(xí)慣性的錯(cuò)誤,因?yàn)槲覍W(xué)習(xí)的C++和C#中寫(xiě)singleton pattern總是將constructor聲明為protected或者private,所以也就"理所當(dāng)然"地這樣寫(xiě)了(還是應(yīng)該好好重視每種編程語(yǔ)言的基礎(chǔ),雖然都是標(biāo)準(zhǔn)的OO語(yǔ)言,但應(yīng)該還是各有自己的特色的,不然也就沒(méi)吸引力了)。既然這樣,我們就無(wú)法保證用戶(hù)不用new來(lái)創(chuàng)建singleton class對(duì)象了,在我思考中,同QQ群上一位網(wǎng)友討論了哈,他給我推薦了一種解決方案,如下:
復(fù)制代碼 代碼如下:

Public function CSingleton()
{
Throw Error("error!");
}

但后來(lái)通過(guò)自己的測(cè)試,發(fā)現(xiàn)這樣是不行的,Actionscript的異常機(jī)制貌似跟C#和C++不同,其實(shí)還是創(chuàng)建了對(duì)象,即使拋出了Exception(當(dāng)然我沒(méi)有很深入的測(cè)試,也許結(jié)果并不正確,但這里我要推薦另一種在Actionscript中實(shí)現(xiàn)singleton pattern的方法)。后來(lái)自己在網(wǎng)上找到一本好書(shū)《Advanced Actionscript 3 with Design Pattern》,在它的Part III中的Chapter 4中找到了關(guān)于Actionscript中singleton的討論。

由于我們沒(méi)法把constructor聲明為private,那就可以給constructor傳遞一個(gè)private的variable,同樣可以達(dá)到不能new的目的。但是怎么樣才能讓一個(gè)只對(duì)singleton class有private作用域的variable呢,我們要注意Actionscript的一些規(guī)則,比如在一個(gè)AS文件中只能有一個(gè)Package,一個(gè)和AS文件同名的Main Class。但我們?cè)贏S文件的包外聲明一個(gè)class,而且這樣聲明的class只對(duì)package中的class有作用域,對(duì)包外是不可見(jiàn)的。所以可以如下來(lái)寫(xiě)這個(gè)Singleton class:
復(fù)制代碼 代碼如下:

package Src
{

/**
* Written by Leezhm, 14th February, 2009
* Contact : Leezhm@126.com
*
* An example of singleton class
**/

public class CSingleton
{
// variable
private static var _instance = new CSingleton(new SingletonEnforcer());

public function CSingleton(enforcer:SingletonEnforcer)
{
}

public static function getInstance():CSingleton
{
if (undefined != CSingleton._instance)
{
return CSingleton._instance;
}
else
{
throw Error("Could not create the instace!");
}
}

}
}

class SingletonEnforcer {}

BTW: 順便附上一張電子書(shū)中關(guān)于Actionscript 3中Singleton Pattern Class講解的照片,如下:
Actionscript 3 Singleton Pattern Class

相關(guān)文章

  • AS3自寫(xiě)類(lèi)整理筆記:ByteLoader類(lèi)

    AS3自寫(xiě)類(lèi)整理筆記:ByteLoader類(lèi)

    該類(lèi)的主要功能是把swf,jpg,png,gif等文件以字節(jié)的形式加載進(jìn)來(lái) 以便于使用Loader.loadBytes方法,重復(fù)加載使用素材 如果圖片格式為jpg,并且是漸進(jìn)式格式j(luò)peg,那么該類(lèi)還可以幫助你邊加載邊顯示
    2008-06-06
  • as3 rollOver or mouseOver使用說(shuō)明

    as3 rollOver or mouseOver使用說(shuō)明

    rollOver與mouseOver同樣在鼠標(biāo)移到目標(biāo)上時(shí)觸發(fā)事件,細(xì)微區(qū)別在于,mouseOver的bubbles等于true,而rollOver的bubbles是false.
    2009-10-10
  • AS3自寫(xiě)類(lèi)整理筆記 ClassLoader類(lèi)

    AS3自寫(xiě)類(lèi)整理筆記 ClassLoader類(lèi)

    在用flash做項(xiàng)目的時(shí)候,把一些元件,通過(guò)設(shè)置鏈接類(lèi),然后使用這個(gè)類(lèi),通過(guò)getClass方法即可把這個(gè)素材拿下來(lái)
    2008-06-06
  • 火山動(dòng)態(tài)文本滾動(dòng)條V5[AS3版]

    火山動(dòng)態(tài)文本滾動(dòng)條V5[AS3版]

    功能說(shuō)明:本版滾動(dòng)條除了繼續(xù)保持體積?。ㄐ∮?K),界面容易修改,資源占用率小的優(yōu)勢(shì)外,主要有以下幾點(diǎn)改進(jìn): 1,使用AS3編寫(xiě)。 2,寬高動(dòng)態(tài)指定。 3,增加滾動(dòng)條背景點(diǎn)擊事件。 4,消除了鼠標(biāo)滾輪無(wú)法同時(shí)準(zhǔn)確控制多個(gè)文本框的重大BUG。
    2008-03-03
  • Actionscript 3.0中Singleton實(shí)現(xiàn) 修正篇

    Actionscript 3.0中Singleton實(shí)現(xiàn) 修正篇

    說(shuō)明:上一篇"一個(gè)簡(jiǎn)單的Actionscript的單態(tài)模式類(lèi)"的實(shí)現(xiàn)在Actionscript中報(bào)錯(cuò),具體原因會(huì)在這篇Blog中詳細(xì)說(shuō)明。
    2009-02-02
  • Actionscript 3.0 鼠標(biāo)事件

    Actionscript 3.0 鼠標(biāo)事件

    這本書(shū)是一本經(jīng)典的書(shū)籍,說(shuō)實(shí)話一些小的AS3的項(xiàng)目是做了好幾個(gè),基本的語(yǔ)法也都知道(其實(shí)有面向?qū)ο缶幊陶Z(yǔ)言的基礎(chǔ)后再入門(mén)一門(mén)新的語(yǔ)言還是很快的)?,F(xiàn)在找到了這邊經(jīng)典書(shū)籍完整版,就好好看看,順便寫(xiě)一些總結(jié)。
    2009-02-02
  • AS3自寫(xiě)類(lèi)整理筆記 Dot類(lèi)

    AS3自寫(xiě)類(lèi)整理筆記 Dot類(lèi)

    拖拽物體1和物體2,就可以看到效果了 index.base.geom.Dot類(lèi)講解 基本功能:記錄xy兩點(diǎn)
    2008-06-06
  • flash PureMVC 使用例子

    flash PureMVC 使用例子

    昨天下了PureMVC, 看了一天文檔, 迷茫啊, 找例子也沒(méi)找到, 后來(lái)破解了一個(gè)看了一下, 大概地寫(xiě)了一個(gè)簡(jiǎn)單的用例, 先算是學(xué)習(xí)筆記吧, 先把這最簡(jiǎn)單的例子做法寫(xiě)一下吧( 也不知道這種理解是否正確哦~~汗一個(gè)!)
    2009-01-01
  • AS3打開(kāi)新窗口不被屏蔽的代碼

    AS3打開(kāi)新窗口不被屏蔽的代碼

    有時(shí)候flash打開(kāi)的網(wǎng)址會(huì)出現(xiàn)被屏蔽的現(xiàn)象,如何能輕松的打開(kāi)而不被屏蔽呢,下面是具體的代碼。
    2010-08-08
  • 編寫(xiě)高效率的AS3代碼的小技巧

    編寫(xiě)高效率的AS3代碼的小技巧

    最近我研究了一些AS3代碼優(yōu)化的文章,一般都是集中在研究loops 和 Number types上的,本文不在重復(fù)類(lèi)似的測(cè)試
    2009-02-02

最新評(píng)論

海兴县| 五寨县| 嘉定区| 镇宁| 洪泽县| 海门市| 上高县| 周宁县| 花垣县| 兴仁县| 遂昌县| 吉水县| 正蓝旗| 志丹县| 甘谷县| 龙口市| 沙湾县| 民乐县| 黄浦区| 彭山县| 贡山| 广丰县| 昂仁县| 栾城县| 蕲春县| 周口市| 山西省| 常德市| 镇宁| 蕲春县| 连州市| 鄂尔多斯市| 工布江达县| 田东县| 阿鲁科尔沁旗| 财经| 南江县| 孙吴县| 双流县| 金湖县| 浮梁县|