2013-02-18 6 views
2

Какой шаблон архитектуры вы используете для разработки Android? До сих пор я использовал шаблон MVC с BroadcastReceivers для связи между слоями, но должно быть что-то лучше этого. Трансляция убивает меня со всеми ее регистрами и нерегламентами. Поэтому любой ответ будет высоко оценен.Модели Android Architecture

Заранее спасибо

+0

Существует не один шаблон архитектуры, подходящий для каждого приложения для Android. Если вам нужны конкретные предложения, вы должны быть более конкретными, какую проблему вы пытаетесь решить. – Brandon

ответ

0

Это плохой вопрос. Ответ всегда «Независимо от того, какую программу вы пытаетесь написать». Шаблоны не предназначены для подключения к решению проблемы, шаблоны - это язык, описывающий вашу архитектуру.

Но, учитывая остальную часть вашего вопроса, я думаю, что вы делаете что-то действительно странное. Самым простым Android-приложением является, как правило, MVC - Activity - это контроллер, классы View - это View, а модель создана вами (или может не беспокоить ее для простого приложения). BroadcastReceivers обычно используются редко, они должны быть уведомлены о асинхронных событиях из ОС или других приложений. Они не предназначены для общения внутри приложения. Кроме того, в Android нет «слоев». Что именно вы делаете?

+0

Да, я знаю, что использование BroadcastReceivers странно. Но я не нашел другого решения для общения между слоями (например, если я хочу получить некоторые записи из БД с помощью потока, то Broadcast помогает мне связываться с Activity. Поток - Activity делает запрос контроллеру и контроллеру на База данных и после успешного получения записей база данных отправляет трансляцию на контроллер и контроллер на активность, чтобы отобразить результат на экране). – Laura

+0

Я знаю, что это странно, и поэтому я разместил этот вопрос, чтобы найти лучший способ разработки приложений для Android. – Laura

+0

Позвольте мне угадать - вы программист на базе Java? Похоже, это очень переработанное решение, тип которого похож на код. Вы переусердствовали. Создайте поток для запроса базы данных. Когда это будет сделано, отправьте сообщение в Activity, отправив его в очередь сообщений.Приемники широковещательной передачи используются, когда вам нужно отправить сообщение неизвестному числу заинтересованных получателей, а не когда вы хотите сообщить конкретному компоненту, что произошло событие. –

1

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

Нет такой универсальной архитектуры для всех приложений для Android.

MVC и broadcast (или вообще связь с событиями) имеют совершенно разные цели.

Короче говоря, MVC, чтобы отделить данные от представления, в то время как broadcast является облегченной коммуникации между неизвестными сторонами (т.е. broadcast приемник может реагировать на конкретное событие, независимо, какой компонент отправляет его)

0

В то время как правда, на каком-то уровне, что не может быть единой архитектуры для Android-приложений, я бы сказал, что там определенно есть архитектурные хорошие идеи. MVC - действительно хорошая идея в Android. Вам не нужно использовать BroadcastReceivers для его поддержки: вы, вероятно, можете многое сделать с ContentObservers. Кроме того, посмотрите на разговоры Вергилия Добжански о RESTful Android. Проверьте это: http://www.youtube.com/watch?v=xHXn3Kg2IQE