0

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

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

代码如下所示:

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);
    }

为了调用服务,我扩展了基本的 Result 处理程序类,并制作了自定义函数来处理结果。通常在最新阶段,我将从服务接收到的数据绑定到我在主应用程序中定义的全局变量,然后在其他类中使用它。

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

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

提前致谢。

4

3 回答 3

1

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

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

于 2009-11-04T13:06:05.540 回答
1

您要问的是 MVC 框架的主要目的之一。特别是您在谈论模型或数据接口。如果您还不想使用完整的框架,您应该做的是创建 2 个类。

1) 数据对象

2) 数据模型

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

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

1) Swiz ( http://swizframework.org/ ):一个超级简单的事件驱动框架,真正利用了 flex 的力量。

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

我说从这两个中的一个开始,您将在成为更好的 flex 开发人员的道路上做得很好。


几个很棒的教程:

瑞士: http ://vimeo.com/7166397

pureMVC: http ://active.tutsplus.com/tutorials/workflow/understanding-the-puremvc-open-source-framework/

于 2009-11-04T16:17:49.653 回答
0

我个人也喜欢Mate。我真的在挖掘他们的框架,并正在为我目前正在从事的一些项目进行改造。

于 2009-11-05T20:37:38.717 回答