我正在开发一个与我的服务器交互的 Air 应用程序。有很多与不同主题相关的各种方法。
为了构建它,我介绍了一个主“API”对象和它的几个扩展器,每个扩展器都实现了特定主题的方法。_call
他们每个人都使用实际调用服务器的主 API方法。
如何设置主 API,以便我可以像这样引用它的子 API:
var Api:myMasterApi = Application.getApi();
// Now do the API calls:
Api.Subject1.Method1();
Api.Subject2.Method3();
我尝试将 MasterApi 公共静态属性设置为实例化的子类,可能是错误的方式:
class myMasterApi {
public static Subject1:mySubject1 = new mySubject1();
public static Subject2:mySubject2 = new mySubject2();
protected function _call( args... ) { /* does the call */ }
}
扩展器是这样的:
class mySubject1 extends myMasterApi {
public function Method1( args... ) {
prepare things;
this._call( args ); // do the call
}
}
这是 API 结构化实现的正确方法,还是我走错了路?
我坚持的问题是,当Api.Subject1
它不是static
通过循环自引用创建堆栈溢出时:因为它的基类具有Subject1
作为属性。
当 Api.Subject1 为 时static
,它会给出错误 1119:“通过静态类型的引用访问可能未定义的属性帖子......”