第四章看的还是有点懵懵懂懂,慢慢回味得了,哈哈。。。现在写一写笔记

第四章讲的是单件模式,按书上的说法是用于限制类的实例化次数,并提供对该实例的全局访问。在单件模式中,类只能实例化一次。

单件模式应该是针对那些在操作过程只需实例化一次的类,比如电脑的鼠标类,不可能有多个鼠标实例,这时候我们就需要单件模式了。

 

单件模式必须具备的3个元素:①私有静态属性;

                                                      ②公共静态方法;

                                                      ③用于限制类再次实例化的方式

其实单件模式最麻烦的是如何控制实例的创建过程,在过程中阻止实例的第二次生成。所以我们就想到静态方法,因为静态方法不属于实例,而是属于类,所以在类实例创建之前它就已经给调用了。

 

构建简单的单间类

 package com.peachpit.aas3wdp.singletonexample{

     public class Singleton{
            static private var _instance:Singleton;
            public function Singleton(singletonEnforcer:SingletonEnforcer){
            }
            public static function getInstance():Singleton{
            if(Singleton._instance==null){
            Singleton._instance=new Singleton(new SingletonEnforcer());
            }
            return Singleton._instance;
            }
            public function doSomething():void{
                    trace("SOMETHING");
             }
    }
}
class SingletonEnforce{}
 

 

调用单间类

package{
  import com.peachpit.aas3wdp.singletonexample.Singleton;
 
  import flash.display.Sprite;
 
  public class SimpleSingletonExample extends Sprite{
      public function SingletonExample(){
           Singleton.getInstance().doSomething();
       }
   }
}
 

单件模式,还没好好体验过呢。。哈哈