您的位置:首页 > 其它

接口,反射,工厂

2013-10-22 10:59 155 查看
package sign

{

public interface IFactory

{

function exec():String;

}

}

package sign

{

public class Factory1 implements IFactory

{

public function Factory1()

{

}

public function exec():String

{

return "factory1"

}

}

}

package sign

{

public class Factory2 implements IFactory

{

public function Factory2()

{

}

public function exec():String

{

return "factory2"

}

}

}

package sign

{

import flash.net.getClassByAlias;

import flash.utils.getDefinitionByName;

import flash.utils.getQualifiedClassName;

import flash.utils.getQualifiedSuperclassName;

public class FactoryOperate

{

public function FactoryOperate()

{

}

public static function getOperate(str:String):sign.IFactory

{

var c:Class= getDefinitionByName(str) as Class

var d:IFactory=new c()

return d;

}

public static function getOperateByClass(value:*):IFactory

{

var classPath:String=getQualifiedClassName(value)

classPath=classPath.replace("::", ".");

return getOperate(classPath);

}

}

}

调用

private var f:Factory1=new Factory1

var ft:sign.IFactory=FactoryOperate.getOperateByClass(f)

var fa:String="Factory2"

//var ft:sign.IFactory=FactoryOperate.getOperate("sign."+fa)

Alert.show(ft.exec())
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: