2016-04-03 5 views
0

Это мое первое настоящее приложение для Android, и я хочу начать его с использования хороших шаблонов дизайна, потому что он будет немного большим, поэтому я могу легко управлять своим кодом. Могу ли я использовать 3-уровневую архитектуру и «MVC» в Android? Я использовал его в «.net», и это был хороший выбор, но я не знаю, могу ли я использовать его в Android или нет.Могу ли я использовать трехъярусную архитектуру и «MVC» вместе в Android?

Я проверил this question, но я до сих пор путают, я не могу понять разницу между MVC и MVP, и я не нахожу никаких комментариев в соответствии с использованием многоуровневого с MVC или MVP для Gether

+1

Возможный дубликат [Android-архитектура приложения - какая предлагаемая модель?] (Http://stackoverflow.com/questions/3320534/android-application-architecture-what-is-the-sposed-model) – Pooya

+0

Я читаю теперь, но я все еще смущен, я не могу понять разницу между MVC и MVP, и я не нахожу комментариев в соответствии с использованием n-уровня с MVC или MVP для gether –

+0

@ cricket_007 [this] (http: // stackoverflow.com/questions/10739914/what-is-the-difference-between-3-tier-architecture-and-a-mvc) объясняет разницу между MVC и 3 уровнями –

ответ

1

Есть многие проводники там, где люди показывают пригодные архитектуры или поклоняются одной архитектуре как СТАНДАРТ, пишут целые книги о старых методах, применяемых к современным проблемам. В отличие от них, это всего лишь грубый ответ:

Android рекомендует использовать MVC или MVC Variant (MVP/MVVM/...) для Деятельности/Фрагменты. Вы можете применить трехуровневую архитектуру для всего приложения.

Уровень представления

The MVC или вариант применяется к презентации слоя. Ваш Presenter/Controller обрабатывает ваше представление, инфляцию и модификацию, привязки управления ui, такие как события onclick, возможно, некоторые эффекты, связанные с этим представлением в одиночку и так далее.

Бизнес Layer

Вот ваш бизнес-логика. Ваши рабочие процессы, процессы, правила, ...

слоя данных

И обработки данных идет здесь.

The Others

Это хорошее начало, чтобы держать вещи в этих 3-х слоев, как для ремонтопригодности и тестирования. Это базовый план моих приложений, как на Android, так и на iOS, но я не всегда нажимаю на все эти 3 слоя. Например, компоненты для сканирования Bluetooth-устройств, загрузки в фоновом режиме (или других фоновых служб и задач) или добавления предварительного просмотра камеры с полным набором элементов управления. Я сохраняю их отдельно для повторного использования без проблем с записью и импортом библиотеки.

0

Чтобы ответить на все вопросы, да.

По определению MVC (или MVP) существует три уровня (но не линейный, но в треугольнике).

  1. Представление (View)
  2. Логический слой (контроллер/Presenter)
  3. слой данных (модель)

Там ничто не мешает истинной архитектуры н-уровневая в Android.Например, вы можете использовать плоские файлы XML SharedPreferences или SQLite в качестве слоев данных сохранения, а затем класс SqliteOpenHelper в качестве следующего уровня для чтения & данных, которые, в свою очередь, будут переданы в Adapter и отображены в некотором ListView.

Переходя от локальной файловой системы, вы используете сетевые запросы для связи с некоторым удаленным уровнем API, который связывается со своим уровнем хранения данных.

+0

3-х уровневая архитектура отличается. он может содержать MVC в одном из его слоев (уровень представления), я тоже был смущен, но после фактической практики я полностью осознаю разницу. [это был мой вопрос] (http://stackoverflow.com/questions/33321967/converting -mvc-ef-to-3-tiers-architecture-model/36352374 # 36352374) в начале использования трехуровневых и MVC вместе, но как «.Net», и я объяснил, как я смешал их вместе в этом вопросе. –

0

Вы можете думать, что модель и вид в MVC соответствуют промежуточной (бизнес-логике) и презентации в 3-уровневом (если хотите, 3-х слойном), соответственно.

Предполагая, что ваша модель в MVC включает в себя слой данных, модель будет соответствовать как уровню промежуточного доступа, так и доступу к данным. Я буду называть эту модель1.

Если вы вводите контроллер между этим уровнем доступа Model1 (промежуточный и доступ к данным) и View (Presentation), тогда у вас будет MVC/3-уровневая архитектура.

Но если вы запретите View для обновления Model1, у вас будет 3-уровневая/MVC-архитектура, то есть архитектура, в которой представление не может напрямую обновлять модель, как это происходит в 3-уровневом, и для по этой причине я поставил имя 3-го уровня спереди.

 Смежные вопросы

  • Нет связанных вопросов^_^