我正在尝试将现有项目重构为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的新手,但我非常喜欢角色的结构和分离。请不要犹豫,告诉我这项实施是否行不通。
答案 0 :(得分:1)
通常在PureMVC中,您可以使用Proxy
来获取远程数据并填充VO
使用的View
,因此在这方面,您提出的架构听起来不错。
DAO
不是我见过的与PureMVC一起使用的模式(这并不是说没有人做或应该)。但是,如果我打算在PureMVC中编写一个crud应用程序,我可能会考虑从Proxy
(或代理)来读取数据库中的信息,并Commands
将其写回来。