摘要: 实现单例模式(Singleton Pattern)的思路是:一个类能返回对象一个引用(永远是同一个)和一个获得该实例的方法(必须是静态方法,通常使用getInstance这个名称);调用这个方法时,如果类持有的引用不为空就返回这个引用,如果类保持的引用为空就创建该类的实例并将实例的引用赋予该类保持的引用;同时将该类的构造函数定义为私有方法(AS3.0不支持),这样其他处的代码就无法通过调用该类的构造函数来实例化该类的对象,只有通过该类提供的静态方法来得到该类的唯一实例。单例模式在多线程的应用场合下必须小心使用。如果当唯一实例尚未创建时,有两个线程同时调用创建方法,那么它们同时没有检测到唯一实例 阅读全文
posted @ 2012-08-03 22:35 Matrix.42 阅读(987) 评论(0) 推荐(0) 编辑
摘要: AS3.0不支持抽象类。可以通过在构造函数里抛出异常来实现抽象类,也可以使用mimswright的抽象类工具包,项目地址,参考博客。通过mimswright的抽象类和抽象方法来实现,如果试图生成AbstractFun的实例,就会抛出异常:ERROR:An abstract class may not be instantiated. 1 package com.cnblogs.matrix42.abstractexample 2 { 3 import com.mimswright.utils.AbstractEnforcer; 4 public class Abstra... 阅读全文
posted @ 2012-08-03 21:55 Matrix.42 阅读(648) 评论(0) 推荐(0) 编辑
摘要: 这两天在学习parsley和IoC,接触到反射机制的概念,在网上看到一些比较好的解释,记录下来。1、反射就是通过一个字符串得到一个Class然后根据这个Class得到实例。2、例子:现在假设有100种动物(Animal),它们都继承自Animal类,这时候你需要实例化随机选择的一种动物,如果你不用反射,就要用switch做N次的条件判断,(Dictionary实现会比较优雅,但是依旧繁琐)。如果用反射,就会简单的多:1 public static function getNewAnimal(type:String):Animal2 {3 var classReference:Class... 阅读全文
posted @ 2012-08-03 09:11 Matrix.42 阅读(492) 评论(0) 推荐(1) 编辑