открыть базу данных с помощью Android и MVC - PullRequest
1 голос
/ 03 сентября 2011

Я пишу приложение для Android, словарь просто для удовольствия. Я решил использовать MVC в качестве архитектурного шаблона. Мне нужно сделать много запросов, потому что я хочу создать поиск поиска, как это делает Google: каждый раз, когда пользователь добавляет письмо в EditText Я хочу сделать запрос к базе данных.
Мне интересно, как лучше всего открывать базу данных каждый раз или держать ее всегда открытой. Первый может быть лучше, потому что база данных открыта только тогда, когда это строго необходимо, а второй должен быть более производительным.
Есть другой способ. Потому что я использую MVC - это представление, которое будет запрашивать базу данных. Таким образом, я могу создать в части Model открытый метод, чтобы при необходимости открыть базу данных и закрыть ее, когда пользователь нашел слово. Но может ли это быть хорошим решением? Две из наиболее важных функций базы данных (открывать и закрывать) будут выставлены в части просмотра. Это звучит не очень правильно: в нем нет скрытой информации.

Что вы думаете об этой логической и непростой проблеме?

1 Ответ

1 голос
/ 03 сентября 2011

Если мы говорим исключительно о теоретическом проектировании паттернов, правда в том, что Модель, вероятно, даже не должна раскрывать тот факт, что она получает свои данные из базы данных.Вы можете легко отслеживать внутри модели, является ли база данных открытой или нет, и открывать ее при необходимости.

Что касается вопроса производительности, когда речь идет о таких вопросах, только способ получить хороший ответ - это измерить.Может случиться так, что сохранение базы данных не будет иметь никаких негативных последствий, и у вас не возникнет никаких проблем, если просто оставить ее открытой.Это будет самое простое и быстрое решение больше, чем вероятно .Однако может случиться так, что сохранение его открытым может занять слишком много памяти, или занять центральный процессор, или какой-либо другой побочный эффект.

Как я уже говорил, единственный способ получить точный ответ - это измерить,Вы можете использовать DDMS среди других инструментов профилирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...