我无法理解如何在android studio项目中应用模型-视图-控制器设计模式。
我了解该视图是.xml布局,并且应该将活动类视为控制器,但是我对通用编程逻辑是否应该成为控制器或模型的一部分感到困惑。
与特定活动相关的编程逻辑是否可以包含在活动类中,或者应该将它们分为两类?即仅处理用户输入的活动和处理相关编程逻辑的第二类。
答案 0 :(得分:2)
根据职责隔离代码始终是一个好主意。在代码的可读性和可维护性方面,它给我们带来了许多优势。
由于您已经要求使用MVC模式,但是在这里,我们有一个很好的MVP模式示例,有关Google示例中有关Android项目中干净架构的示例链接,下面将对此进行解释。
链接:https://github.com/googlesamples/android-architecture/blob/todo-mvp/README.md
组件:
型号:更多的业务实体/ Pojo 视图:更多片段和活动 存储库:信息的数据源。它可以是数据库,缓存,远程服务器,文件系统等之一。 演示者:这是一个从您的存储库中获取数据并将结果发送回视图的层。
我试图在我的一个学习项目中实现类似的模式。
链接:https://github.com/amol-kamble/movie-finder/tree/master/app/src/main
答案 1 :(得分:2)
你好@Somebloke它就像它的名字一样简单。
2.MVC:-这是用于开发Android应用程序的结构之一。
答案 2 :(得分:0)
架构决定可能是:
架构是我们尝试管理不断变化的需求所涉及的风险。与其他任何风险管理活动一样,我们无法为所有可能发生的风险做好准备。我们需要选择一个将来可能会发生变化的子集,以优化应用程序,该子集将构成应用程序体系结构。
这里是一个入门的知识库,您应该创建自己的项目并实施这些软件体系结构,以便采用适用于您和您的项目的软件体系结构:
Android Architecture Blueprints
答案 3 :(得分:0)
//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模式。在活动中创建所有三个类的对象,并将活动的view(xml文件)引用传递给StudentView对象。在StudentView类中创建子视图,如xml文件中所述。