PureMVC中的异步数据库访问层

时间:2015-02-25 22:59:07

标签: sqlite actionscript-3 model-view-controller data-access-layer puremvc

我正在尝试将现有项目重构为PureMVC。这是一个Adobe AIR桌面应用程序,它利用了AIR附带的SQLite库,并在其上构建了一些其他库:

我使用类似于websql-js基于promise的SQL访问层的数据库的当前实现,它运行得很好,但是我很难看到它在PureMVC中是如何工作的。

目前,我的VO将与DAO(数据访问对象)配对以进行数据库访问。我遇到的问题是如何在整个程序中跟踪dbFile和sqlRunner实例。 DAO需要知道sqlRunner,或者至少需要知道dbFile。 sqlRunner应该被视为singleton-esque吗?或者为每个数据库查询创建?

最后,如何将dbFile或sqlRunner公开给DAO?在我的脑海中,我现在看到将这些保存在将暴露给其他代理的DatabaseProxy中,并在需要时实例化DAO。 DAO工厂模式怎么样?

我是PureMVC的新手,但我非常喜欢角色的结构和分离。请不要犹豫,告诉我这项实施是否行不通。

1 个答案:

答案 0 :(得分:1)

通常在PureMVC中,您可以使用Proxy来获取远程数据并填充VO使用的View,因此在这方面,您提出的架构听起来不错。

DAO不是我见过的与PureMVC一起使用的模式(这并不是说没有人做或应该)。但是,如果我打算在PureMVC中编写一个crud应用程序,我可能会考虑从Proxy(或代理)来读取数据库中的信息,并Commands将其写回来。