Performance 多远程对象-最佳实践

Performance 多远程对象-最佳实践,performance,apache-flex,remoteobject,Performance,Apache Flex,Remoteobject,我有一个大约20个模型和控制器的应用程序,我没有使用任何特定的框架。在Flex performance wise中使用多个远程对象的最佳实践是什么 1)方法1-每个组件一个-每个组件为自己实例化一个RemoteObject 2)方法2-应用程序根目录中的多个-每个控制器由根目录中的RemoteObject处理 3)方法3-应用程序根目录中的一个-将所有控制器合并到一个类中,并使用一个RemoteObject处理它们 我猜3将有最好的性能,但会太混乱,无法维护,1将是最干净的,但会受到性能打击。您

我有一个大约20个模型和控制器的应用程序,我没有使用任何特定的框架。在Flex performance wise中使用多个远程对象的最佳实践是什么

1)方法1-每个组件一个-每个组件为自己实例化一个RemoteObject

2)方法2-应用程序根目录中的多个-每个控制器由根目录中的RemoteObject处理

3)方法3-应用程序根目录中的一个-将所有控制器合并到一个类中,并使用一个RemoteObject处理它们


我猜3将有最好的性能,但会太混乱,无法维护,1将是最干净的,但会受到性能打击。您认为呢?

很大程度上取决于您拥有多少数据,从服务器刷新数据的次数,以及您必须支持更新和查询的次数

第3个(和第2个)基本上是一个单例,它最适合于大型应用程序和大型数据集。是的,维护自己会很复杂,但这就是为什么人们倾向于使用框架(puremvc、cairgom等)。大部分复杂性都是为您处理的。在框架内缓存数据还可以提高性能和响应时间

1的问题是,如果必须协调每个组件的数据更新,则基本上需要编写一个无状态UI,始终从每个组件的服务器检索数据


编辑:我使用的是Cairgom-有30个域模型(200个左右的远程调用),还使用视图模型。我的一些模型(远程对象)有10个数千个对象实例(记录),我保留了一个带有/写回的缓存。所有的复杂性都封装在控制器/命令中。性能是可以接受的

很大程度上取决于您拥有多少数据,从服务器刷新数据的次数,以及您必须支持更新和查询的次数

第3个(和第2个)基本上是一个单例,它最适合于大型应用程序和大型数据集。是的,维护自己会很复杂,但这就是为什么人们倾向于使用框架(puremvc、cairgom等)。大部分复杂性都是为您处理的。在框架内缓存数据还可以提高性能和响应时间

1的问题是,如果必须协调每个组件的数据更新,则基本上需要编写一个无状态UI,始终从每个组件的服务器检索数据

编辑:我使用的是Cairgom-有30个域模型(200个左右的远程调用),还使用视图模型。我的一些模型(远程对象)有10个数千个对象实例(记录),我保留了一个带有/写回的缓存。所有的复杂性都封装在控制器/命令中。性能是可以接受的

最佳实践应该是“以上都不是”。您的视图应该调度控制器或命令组件用来调用您的服务的事件,然后在返回数据时更新您的模型。您的视图将绑定到数据,然后视图将自动使用新数据更新

我的偏好是,对于我正在检索的不同数据块或类型,有一个服务类——这使得构建模拟服务变得更容易,根据您所做的工作,模拟服务可以根据需要交换为真实服务(例如,如果您有一个复杂的服务器设置,正在进行蒙皮的开发人员将使用模拟)。但实际上,如何做到这一点是个人偏好的问题

那么,您的服务位于何处,以便控制器或命令可以访问它们?如果使用Robotlegs或Swiz等依赖项注入框架,它将有一个单独的对象来处理模型和服务对象实例的实例化、存储和返回(对于Robotlegs,它还将为您创建命令对象,并可以创建称为中介的视图管理对象)。如果您不使用这些框架中的一个,您将需要“自行开发”,如果您不具备架构思想,这可能有点困难

有一件事是,那些不知道如何实现自己的目标的人(比如编写Cairngorm旧版本的人)倾向于依赖单身汉。在当今时代,这些都不是好的实践,特别是如果您对单元测试工作感兴趣的话

最佳实践应该是“以上都不是”。您的视图应该调度控制器或命令组件用来调用您的服务的事件,然后在返回数据时更新您的模型。您的视图将绑定到数据,然后视图将自动使用新数据更新

我的偏好是,对于我正在检索的不同数据块或类型,有一个服务类——这使得构建模拟服务变得更容易,根据您所做的工作,模拟服务可以根据需要交换为真实服务(例如,如果您有一个复杂的服务器设置,正在进行蒙皮的开发人员将使用模拟)。但实际上,如何做到这一点是个人偏好的问题

那么,您的服务位于何处,以便控制器或命令可以访问它们?如果使用Robotlegs或Swiz等依赖项注入框架,它将有一个单独的对象来处理模型和服务对象实例的实例化、存储和返回(对于Robotlegs,它还将为您创建命令对象,并可以创建称为中介的视图管理对象)。如果您不使用这些框架中的一个,您将需要“自行开发”,如果您不具备架构思想,这可能有点困难

有一件事是,那些不知道如何实现自己的目标的人(比如编写Cairngorm旧版本的人)倾向于依赖单身汉。在当今时代,这些都不是好的实践,特别是如果您对单元测试感兴趣的话