引用网上一段话:
单例模式(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的类,可以使用单例模式来进行。有兴趣可以尝试一下。
