接口,反射,工厂
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())
{
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())
相关文章推荐
- C#用工厂模式、反射机制和缓存机制来设计数据访问层的接口总结
- 用工厂模式、反射机制和缓存机制来设计数据访问层的接口
- C#工厂模式(反射,接口,抽象类)
- C#用工厂模式、反射机制和缓存机制来设计数据访问层的接口
- 反射实现接口工厂
- 设计模式实践-反射到所有接口实现类实践工厂方法,页面中有大量计算数据时设计实践
- 自己在项目中的学习总结:利用工厂模式+反射机制+缓存机制,实现动态创建不同的数据层对象接口
- 接口,工厂及反射
- 重构版机房收费系统之分层、接口、数据库连接、反射+工厂(vb.net)
- 重构版机房收费系统之分层、接口、数据库连接、反射+工厂(vb.net)
- C#——依赖接口编程与简单工厂
- [Spring] IOC的实现原理—反射与工厂模式
- 【机房重构】工厂+反射
- java 利用接口实现工厂模式
- Java中工厂、配置文件和反射学习
- 反射与接口
- 基于C#反射机制的工厂模式
- 抽象类与接口及简单的工厂模式
- Java反射 配置文件 工厂方法综合实例
- 《PHP核心技术与最佳实践》读书笔记(面向接口与反射篇)