Apache flex AS3:如果调用远程服务,如何组织代码

Apache flex AS3:如果调用远程服务,如何组织代码,apache-flex,actionscript-3,oop,application-design,Apache Flex,Actionscript 3,Oop,Application Design,在我的flex应用程序中,我经常使用服务。我需要他们在应用程序中更新我的数据,所以经常给他们打电话。目前,我以以下方式实施: 1) 有一个服务提供商(AMFLoader类) 2) 和响应处理程序(响应程序类) 代码如下所示: public function AMFLoader(url:String):void { gateway = new NetConnection(); gateway.connect(url); } public function callAMFLoa

在我的flex应用程序中,我经常使用服务。我需要他们在应用程序中更新我的数据,所以经常给他们打电话。目前,我以以下方式实施:

1) 有一个服务提供商(AMFLoader类) 2) 和响应处理程序(响应程序类)

代码如下所示:

public function AMFLoader(url:String):void
{
     gateway = new NetConnection();
     gateway.connect(url);
}

public function callAMFLoader(serviceName:String, param:String,  resultHandler:AMFResultHandler):void
{
     gateway.addEventListener(IOErrorEvent.IO_ERROR, resultHandler.onIENetError);
     gateway.addEventListener(NetStatusEvent.NET_STATUS, resultHandler.onNetStatus);
     responder = new Responder(resultHandler.onSuccess, resultHandler.onFalse);
     gateway.call(serviceName,responder, param);

}
和结果处理程序类:

public class AMFResultHandler
{
    public function AMFResultHandler()
    {
    }


    public function onSuccess(result:*):void
    {
        trace("Result from basic AMF Result handler on success: " + result);
    }
为了调用服务,我扩展了基本的结果处理程序类,并创建自定义函数来处理结果。通常在最新阶段,我将从服务接收的数据绑定到我在主应用程序中定义的全局变量,然后在其他类中使用它

目前,我注意到使用全局变量是一件非常烦人的事情,不确定这是否是一种好的编程风格。 例如,当我试图重构代码时,我注意到有时很难理解谁、何时(以及为什么)在那里填充数据

也许你可以建议一种存储服务调用数据的方法。我无法理解的主要一点是,我们不能仅仅创建一个方法,例如getData,然后在应用程序中的某个地方调用它,因为调用服务和存储数据是不同的事情(因为只有在某些事件中才会接收数据)


提前谢谢

有几种Flex框架可以帮助您:

  • 我个人喜欢
  • 还有
  • 这是非常确定的
  • ,它过去被称为Prana,是Spring到Actionscript的一个端口

这些框架中的每一个都将帮助您更好地组织模型和服务。看看每一个,选择一个你觉得舒服的

您所问的是MVC框架的主要目的之一。具体来说,您需要谈论模型或数据接口。如果您还不想使用一个完整的框架,那么您应该做的是创建两个类

1) 数据对象

2) 数据模型

其中“数据”被用户或产品等直观的东西所取代。在DataObject中,您只保留数据的属性,同样,它也是假定数据正确的唯一位置。但DataObject只能通过DataModel直接访问。在数据模型中,您保留数据对象的所有getter和setter以及填充数据对象所需的任何远程服务调用

这只是MVC风格应用程序开发的开始,如果您真的想转到更灵活、更易于管理的代码,就应该考虑使用一个完整的框架。我建议的两个是:

1) Swiz():一个超级简单的事件驱动框架,它真正利用了flex的强大功能

2) PureMVC():一种易于理解的MVC代码结构,强调代码解耦和严格的MVC架构

我说,从这两个项目中的一个开始,你就会成为一名更好的flex开发人员


两个很棒的教程:

瑞士:


pureMVC:

我个人也喜欢Mate。我真的在挖掘他们的框架,并将其重新装配到我目前正在进行的几个项目中。

深入。。。希望我能很快习惯使用它