flex – DDD和异步存储库
我们正在使用RMI和JMS连接到
Java后端的富客户端(用Flex编写).我正在考虑以DDD方式实现客户端,以便它具有域对象上的CRUD操作的存储库.
然而问题是所有后端通信都是异步的,我无法强迫客户端等待继续直到收到响应.这意味着,在较低级别,我可以在远程对象上调用方法,并获得AsyncToken作为返回值.然后我可以听到asynctoken上的事件,看看是否已经通过或者失败了.然而,这打破了存储库背后的主要思想,以隐藏客户端的技术细节. 我猜可能有两个选项: >让存储库中的方法返回asynctoken,这对我来说似乎是一个混乱的解决方案 两者都有利有弊,我想得到你们的一些意见. (更进一步,什么是好的缓存策略?依赖于这种情况,我不希望每次我请求所有实体时,存储库都会调用服务器.这将如何影响存储库上方法的签名. ) 解决方法
Flex和Flash Remoting本质上是异步的,因此与这种模式作斗争会给你带来很多麻烦.我们的服务代表从每个方法返回AsyncToken,我们从来没有遇到过问题.
如果要确保应用程序在结果/错误恢复之前不呈现新视图或执行其他逻辑,则可以执行以下操作: >为自定义事件附加一个事件监听器,该事件将调用您的“发布结果/故障代码” 请记住,每次进行异步调用时,这都会导致很多恼人的boilterplate代码.我会非常仔细地考虑你是否真的需要一个同步执行路径. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |