FastChar官网
FastChar官网 FastChar

FastOverrides是FastChar核心组件,贯穿整个框架,是FastChar的类代理器,为功能的插件化或模块化开发提供了强大的支持类代理器的原理和对象工厂类似。

解说
如果一个类允许被代理,那么进行类实例化的时候,需要使用FastOverrides提供的方法进行实例化,如下代码:

public void show() {
FcUserEntity userEntity = FastChar.getOverrides().newInstance(FcUserEntity.class);
responseText(userEntity.getTableDetails());
}
使用
子类继承或实现父类
以上代码中,FcUserEntity类是允许被代理,所以如下代码TestFcUserEntity继承了FcUserEntity
public class TestFcUserEntity extends FcUserEntity {

@Override
public String getTableDetails() {
return "重写表格描述介绍";
}
}

注册
继承FcUserEntity的
TestFcUserEntity类,需要注册到FastOverrides里才能完成代理,如下方式:

第一种:手动注册-系统初始化注册

在系统初始化的时候,如下代码:

public class FastCharWeb implements IFastWeb {
    /**此处省略其他代码**/     
@Override
public void onInit(FastEngine engine) throws Exception {

engine.getOverrides()
.addClass(TestFcUserEntity.class);

}
    /**此处省略其他代码**/    
}


第二种:手动注册-任意代码处

在任意地方注册,如下代码:

public void index() {
FastChar.getOverrides().addClass(TestFcUserEntity.class);//注册到代理器里
}


第三种:@AFastOverride注解

通过注解@AFastOverride注册,在系统启动后,FastChar的扫描器检测到@AFastOverride标注的类会自动注册到代理器里,如下代码:

@AFastOverride
public class TestFcUserEntity extends FcUserEntity {
@Override
public String getTableDetails() {
return "重写表格描述介绍";
}
}

完成上述步骤后,使用FastOverrides实例化FcUserEntity对象时,返回的则是TestFcUserEntity类型,如下代码:

public void show() {
FcUserEntity userEntity = FastChar.getOverrides().newInstance(FcUserEntity.class);     //userEntity 实际类型为:TestFcUserEntity
responseText(userEntity.getTableDetails());
}


无论是自动还是手动,FastChar都做了去重处理!所以不用担心会出现重复注册的问题。