Смущен структурой проекта Android и паттерном MVC - PullRequest
0 голосов
/ 30 августа 2018

Я не могу понять, как применить шаблон проектирования модель-представление-контроллер в студийном проекте Android.

Я понимаю, что представление - это макеты .xml и что классы действий должны быть контроллерами, но я не совсем понимаю, должна ли общая логика программирования быть частью контроллера или модели.

Может ли логика программирования, относящаяся к конкретной деятельности, быть включена в класс деятельности или они должны быть разделены на два класса? то есть деятельность, обрабатывающая только пользовательский ввод и второй класс, связанный со связанной логикой программирования.

Ответы [ 4 ]

0 голосов
/ 30 августа 2018

//Student Model Class
public class Student {
   private String rollNo;
   private String name;
   
   public String getRollNo() {
      return rollNo;
   }
   
   public void setRollNo(String rollNo) {
      this.rollNo = rollNo;
   }
   
   public String getName() {
      return name;
   }
   
   public void setName(String name) {
      this.name = name;
   }
}

//Student View Class
public class StudentView {

  private TextView name;
  private TextView rollNo;



   public StudentView(View view){
      name=(TextView)view.findViewById(R.id.tv_name);
      rollNo=(TextView)view.findViewById(R.id.tv_roll_no);
   }


   public void setStudentDetails(Student studentModel){
      name.setText(studentModel.getName());
      rollNo.setText(studentModel.getRollNo());
   }
}

//Student Controller Class
public class StudentController {
   private Student model;
   private StudentView view;

   public StudentController(Student model, StudentView view){
      this.model = model;
      this.view = view;
   }

   public void setStudentName(String name){
      model.setName(name);		
   }

   public String getStudentName(){
      return model.getName();		
   }

   public void setStudentRollNo(String rollNo){
      model.setRollNo(rollNo);		
   }

   public String getStudentRollNo(){
      return model.getRollNo();		
   }

   public void updateView(){				
      view.setStudentDetails(model);
   }	
}

Вы можете использовать шаблон MVC, как указано выше. Создайте объекты всех трех классов в упражнении и передайте ссылку представления вида (файл xml) на объект StudentView. Создайте дочерние представления в классе StudentView, как указано в файле xml.

0 голосов
/ 30 августа 2018

привет @Somebloke Это так же просто, как и его имя.

  1. Структура проекта Android означает необходимый файл, который используется для разработки Приложения Android. например, файл src, файл gen и т. д.
    • src: эта папка содержит исходные файлы Java
    • gen: созданная библиотека Java, эта библиотека предназначена только для внутреннего использования Android.
    • Res: Здесь мы можем хранить файлы ресурсов, такие как изображения, файлы XML для определения макетов и т. Д. В этой папке есть дополнительные папки, такие как Drawable, Layout и Values.
    • AndroidManifest.xml: это файл определения Android. Он содержит информацию о приложении Android, такую ​​как минимальная версия Android, разрешение на доступ к таким возможностям устройства Android, как разрешение на доступ в Интернет, возможность использовать разрешение на телефон и т. Д.

2.MVC: - Это одна из структур, которые используются при разработке приложения для Android.

  • Модель - Уровень данных, отвечающий за управление бизнес-логикой и обработку API сети или базы данных.
  • Просмотр - уровень пользовательского интерфейса - визуализация данных из модели.
  • Контроллер - логический уровень, получает уведомления о поведении пользователя и обновляет модель по мере необходимости. enter image description here

Вы можете взять это в качестве примера https://github.com/hkusu/android-mvc-sample

0 голосов
/ 30 августа 2018

Архитектурное решение может быть:

  • Ожидается ли работа приложения в сети или в автономном режиме?
  • Как при упаковке приложения вы должны распространять пакеты верхнего уровня в базе кода?
  • Зависимость инъекций.
  • Юнит-тестирование.

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

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

Чертежи архитектуры Android

Android Architecture Blueprints

Реактивные приложения с MODEL-VIEW-INTENT - ЧАСТЬ 1 - Модель

enter image description here

0 голосов
/ 30 августа 2018

Всегда хорошая идея изолировать ваш код в зависимости от обязанностей. Это дает нам несколько преимуществ, когда дело доходит до читабельности и удобства сопровождения кода.

Так как вы запросили шаблон MVC, но здесь у нас есть очень хороший пример шаблона MVP, который объясняется по следующей ссылке примеров Google относительно чистой архитектуры в проектах Android.

Ссылка: https://github.com/googlesamples/android-architecture/blob/todo-mvp/README.md

enter image description here

Компоненты:

Модель: Больше ваших юридических лиц / Pojo Просмотры: больше ваших фрагментов и действий Репозиторий: Источник данных для информации. Это может быть ваша база данных, кеш, удаленный сервер, файловая система и т. Д. Presentor: это слой, который получает данные из одного из ваших репозиториев и отправляет результат обратно вашим представлениям.

Я пытался реализовать аналогичную схему в одном из моих учебных проектов.

Ссылка: https://github.com/amol-kamble/movie-finder/tree/master/app/src/main

...