1

Я пытаюсь реорганизовать существующий проект в PureMVC. Это настольное приложение Adobe AIR, воспользовавшись SQLite библиотеки в комплект с AIR и зданием на нем с несколькими других библиотеками:Асинхронный уровень доступа к базам данных в PureMVC

  • Пол Робертсон отлично асинхронной SQLRunner
  • promise-as3 реализации асинхронных обещаний
  • websql-js документацией для хорошей оценки

Я сделал свою текущую реализацию базы данных, аналогичную SQL-слову, основанному на обещании websql-js, и он работает очень хорошо, однако я боюсь как это работает в PureMVC.

В настоящее время у меня есть мои ВО, которые будут соединены с DAO (объектами доступа к данным) для доступа к базе данных. Где я застрял, как отслеживать экземпляры dbFile и sqlRunner во всей программе. DAO должны знать о sqlRunner или, по крайней мере, dbFile. Должен ли sqlRunner рассматриваться как singleton-esque? Или создан для каждого запроса базы данных?

Наконец, как я могу предоставить dbFile или sqlRunner для DAO? В моей голове сейчас я вижу, что они хранятся в DatabaseProxy, которые будут подвергаться другим прокси, и при необходимости создавайте DAO. Как насчет фабричной модели DAO?

Я очень новичок в PureMVC, но мне очень нравится структура и разделение ролей. Пожалуйста, не стесняйтесь сказать мне, если эта реализация просто не сработает.

+0

Видимо, мне нужно больше репутации для публикации 3 или более ссылок, но вот ссылка на документацию websql-js для хорошей оценки http://websql-js.googlecode.com/hg/docs/websql.html –

ответ

1

Обычно в PureMVC вы бы использовать Proxy для извлечения удаленных данных и заполнения VO сек, используемых вашего View, так что в этом отношении предлагаемой ваша архитектура звучит хорошо.

DAO s не образец, который я когда-либо видел, используемый в сочетании с PureMVC (что не означает, что никто не делает или не должен). Однако, если бы я собирался написать crud-приложение в PureMVC, я бы, вероятно, подумал с точки зрения Proxy (или прокси), чтобы читать информацию из базы данных, и Commands, чтобы записать его обратно.