你的做法是正确的。您需要创建一个您希望应用程序与之交谈的服务的抽象,然后提供2个不同的实现:1,用于Web应用程序,可以通过AMF,webservices或http服务使用远程处理,1用于桌面应用程序,这将有一个SQLite实现。
此方法基本上是策略模式的实现,这是Spring ActionScript框架中的核心模式。包括一个Operation API这将帮助您创建服务类的接口,因为它们将具有异步签名。好的一面是,它还支持创建存根服务实现,因此您可以测试应用程序而不依赖于Web或桌面客户端的实际实现。该框架还提供了不同的配置机制,以便您可以部署应用程序并提供必须在运行时使用的策略。
我做了春天ActionScript中的谈话中,我讨论了操作API:http://parleys.com/#sl=25&st=5&id=1566
在代码中,你的服务代码可能是这样的:
// interface
public interface IUserService {
function getUserByID(id:String):IOperation;
}
// implementation A
public class UserServiceA implements IUserService {
public function getUserByID(id:String):IOperation {
// return implementation specific operation
}
}
// implementation B
public class UserServiceB implements IUserService {
public function getUserByID(id:String):IOperation {
// return implementation specific operation
}
}
最终的结果是,你的应用程序会谈到IUserService并且对实际的实现一无所知。这些实现可以在Spring ActionScript容器中配置和管理,并为您自动注入。
非常感谢Christophe。你的谈话非常有帮助。你可以让我知道我从哪里可以得到你在该视频中显示的演示的来源。 – Anji 2011-01-28 11:48:52