设计模式练习:单例模式

    技术2022-05-12  13

    引用网上一段话:

    单例模式(Singleton),也叫单子模式,是一种常用的软件设计模式。在应用这个模式时,单例对象的类必须保证只有一个实例存在。许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为

    http://zh.wikipedia.org/wiki/单例模式

     

     

    按照这种定义和概念,我们在构建一个系统的时候,如果真的需要一个唯一某个对象访问系统,可以考虑使用单例模式。其实在java c++ 。net都早已经有描述了。现在使用一下flash as3描述一下。其实不是新鲜的文章。

     

     

    我们创建一个实例对象,可以使用下面简单的方式如

     

    var obj:Example=new Example(); //这样就创建一个简单的实例了。

     

    好,下面创建一个简单的单例模式,姑且叫玩家类 或者主角类

    package {   public class Player{      private static var _instance:Player;      public function MyClass() {}      public static function getInstance():Player{         _instance = new Player();         return _instance;      }   }}

    然后 再进行修改一些

    package {

         public class Player{      private static var _instance:Player=null;      public function MyClass() {if(_instance!=null) throw new Error("创建失败");}      public static function getInstance():Player{

             if(_instance ==null)         _instance = new Player();         return _instance;      }   }}

     

    使用他的时候

    var _player:Player=Player.getInstance();

     

     

    增加参数:

    这个玩家类 就可以在游戏世界里面

    package {

         public class Player{      private static var _instance:Player=null;      public function MyClass(name:String=null) {if(_instance!=null) throw new Error("创建失败");}      public static function getInstance(name:String):Player{

             if(_instance ==null)         _instance = new Player(name);         return _instance;      }   }}

     

    同样也可以继续修改这个类

    var _player:Player=Player.getInstance("hero");

     

     

    例子:写一个外部加载xml的类,可以使用单例模式来进行。有兴趣可以尝试一下。

     

     

     

     

     

     

     


    最新回复(0)