PureMVC 中的异步数据库访问层
Asynchronous Database Access Layer in PureMVC
我正在尝试将现有项目重构为 PureMVC。这是一个 Adobe AIR 桌面应用程序,它利用了 AIR 中包含的 SQLite 库,并在其基础上构建了一些其他库:
- Paul Robertson 出色的异步 SQLRunner
- promise-as3 异步承诺的实现
- websql-js 良好措施的文档
我使我当前的数据库实现类似于 websql-js 的基于承诺的 SQL 访问层并且它工作得很好,但是我正在努力了解它如何在 PureMVC 中工作。
目前,我的 VO 将与 DAO(数据访问对象)配对以进行数据库访问。我遇到的问题是如何在整个程序中跟踪 dbFile 和 sqlRunner 实例。 DAO 需要了解 sqlRunner,或者至少了解 dbFile。 sqlRunner 是否应该被视为单例模式?还是为每个数据库查询创建?
最后,如何将 dbFile 或 sqlRunner 公开给 DAO?现在在我的脑海中,我看到将它们保存在一个 DatabaseProxy 中,它将暴露给其他代理,并在需要时实例化 DAO。 DAO 工厂模式怎么样?
我对 PureMVC 还很陌生,但我真的很喜欢角色的结构和分离。如果这个实现根本行不通,请不要犹豫告诉我。
通常在 PureMVC 中,您会使用 Proxy
来获取远程数据并填充 View
使用的 VO
,因此在这方面您建议的架构听起来不错。
DAO
s 不是我见过的与 PureMVC 结合使用的模式(这并不是说没有人这样做或应该这样做)。但是,如果我打算在 PureMVC 中编写一个 crud 应用程序,我可能会考虑 Proxy
(或代理)从数据库中读取信息,然后 Commands
将其写回。
我正在尝试将现有项目重构为 PureMVC。这是一个 Adobe AIR 桌面应用程序,它利用了 AIR 中包含的 SQLite 库,并在其基础上构建了一些其他库:
- Paul Robertson 出色的异步 SQLRunner
- promise-as3 异步承诺的实现
- websql-js 良好措施的文档
我使我当前的数据库实现类似于 websql-js 的基于承诺的 SQL 访问层并且它工作得很好,但是我正在努力了解它如何在 PureMVC 中工作。
目前,我的 VO 将与 DAO(数据访问对象)配对以进行数据库访问。我遇到的问题是如何在整个程序中跟踪 dbFile 和 sqlRunner 实例。 DAO 需要了解 sqlRunner,或者至少了解 dbFile。 sqlRunner 是否应该被视为单例模式?还是为每个数据库查询创建?
最后,如何将 dbFile 或 sqlRunner 公开给 DAO?现在在我的脑海中,我看到将它们保存在一个 DatabaseProxy 中,它将暴露给其他代理,并在需要时实例化 DAO。 DAO 工厂模式怎么样?
我对 PureMVC 还很陌生,但我真的很喜欢角色的结构和分离。如果这个实现根本行不通,请不要犹豫告诉我。
通常在 PureMVC 中,您会使用 Proxy
来获取远程数据并填充 View
使用的 VO
,因此在这方面您建议的架构听起来不错。
DAO
s 不是我见过的与 PureMVC 结合使用的模式(这并不是说没有人这样做或应该这样做)。但是,如果我打算在 PureMVC 中编写一个 crud 应用程序,我可能会考虑 Proxy
(或代理)从数据库中读取信息,然后 Commands
将其写回。