Android 安卓MVC架构

编程入门 行业动态 更新时间:2024-10-05 13:26:26

Android 安卓MVC<a href=https://www.elefans.com/category/jswz/34/1771112.html style=架构"/>

Android 安卓MVC架构

MVC文章目录

    • 引入
    • 推荐文章
    • 原理
    • 我的理解
    • 我的Demo
      • 第一步Bean
      • 第二步Modle
      • 第三步Controller
      • 第四步完成View

引入

本篇文章Github有提交

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。


推荐文章

安卓MVP架构


原理

控制器(Controller)- 负责转发请求,对请求进行处理。
视图(View) - 界面设计人员进行图形界面设计。
模型(Model) - 程序员编写程序应有的功能(实现算法等等)、数据库专家进行数据管理和数据库设计(可以实现具体的功能)。

我的理解

在安卓中,MVC架构模式,当用户点击屏幕有数据交互的时候(比如说,请求网络、解析操作等),此时,首先会调用控制器(Controller)中的方法,让它负责转发到模型(Model),让模型中的功能或者是算法执行,之后模型(Model)执行完毕,此时控制器(Controller)就要调用实现的接口,把数据返回给视图(View)。看看我写的demo例子吧!

我的Demo


我首先写的是一个Bean类,也就是模拟的数据,之后就要实现可以更新数据的这一层(模型),所以呢,在这一层写入了增加和删除,以及查找方法。之后就是控制器,控制器的职责上述也说了,负责转发请求,对用户的请求进行处理,里面写入了调用模型(Model)的方法,并且实现了回调接口(方便View更新数据),如果模型层,执行完毕之后,紧接着就是控制器调用接口通知给用户,然后View完成更新操作。


第一步Bean

package com.lkdot.mvc.bean;/*** Bean类*/
public class PeopleBean {private String name;private int number;public PeopleBean() {}public PeopleBean(String name, int number) {this.name = name;this.number = number;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getNumber() {return number;}public void setNumber(int number) {this.number = number;}@Overridepublic String toString() {return "PeopleBean{" +"name='" + name + '\'' +", number=" + number +'}';}
}

第二步Modle

package com.lkdot.mvc.modle;import com.lkdot.mvc.bean.PeopleBean;public class PeopleModle {private static PeopleBean peopleBean = new PeopleBean();static {peopleBean.setName("NorthernBrain");peopleBean.setNumber(1);}/*** 添加数量*/public void addNumber() {peopleBean.setNumber(peopleBean.getNumber() + 1);}/*** 减少数量*/public void reduceNumber() {peopleBean.setNumber(peopleBean.getNumber() - 1);}public String selectData(){return peopleBean.toString();}
}

第三步Controller

package com.lkdot.mvc.controller;import com.lkdot.mvc.modle.PeopleModle;public class PeopleControler {private PeopleModle peopleModle;public PeopleControler() {peopleModle = new PeopleModle();}/*** 增加数量*/public void addNumber(addListener addListener) {peopleModle.addNumber();addListener.addOK(peopleModle.selectData());}/*** 减少数量*/public void reduceNumber(reduceListener reduceListener) {peopleModle.reduceNumber();reduceListener.reduceOK(peopleModle.selectData());}public interface addListener {void addOK(String str);}public interface reduceListener {void reduceOK(String str);}}

第四步完成View

package com.lkdot.mvc;import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;import com.lkdot.mvc.controller.PeopleControler;public class MainActivity extends AppCompatActivity implements View.OnClickListener {private TextView text;private Button add;private Button reduce;private PeopleControler peopleControler;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initView();peopleControler = new PeopleControler();}private void initView() {text = (TextView) findViewById(R.id.text);text.setText("null");add = (Button) findViewById(R.id.add);reduce = (Button) findViewById(R.id.reduce);add.setOnClickListener(this);reduce.setOnClickListener(this);}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.add:peopleControler.addNumber(new PeopleControler.addListener(){@Overridepublic void addOK(String str) {text.setText(str);}});break;case R.id.reduce:peopleControler.reduceNumber(new PeopleControler.reduceListener() {@Overridepublic void reduceOK(String str) {text.setText(str);}});break;}}
}

本篇文章Github有提交

更多推荐

Android 安卓MVC架构

本文发布于:2024-02-28 03:43:33,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1767755.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:架构   Android   MVC

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!