MVC的一些个人看法

从官方的定义上来说,MVC的三个字母代表的含义是指模型(model)-视图(view)-控制器(controller)。这三者分别具体代表着什么,我这里以一个加载和保存用户数据的例子来说明。

惯例,先看图:


1、model层

在我看来,model层就是用来对抽象事物封装成一个具体类的实现,比如在这个例子中,则需要将用户数据封装成一个类,如下是我定义的一个UserModel类:

package com.xlc.mvclearn;

/**
 * Created by acer on 2016/4/22.
 */
public class UserModel {
    private int userid;
    private String username;
    private int userage;

    public int getUserid() {
        return userid;
    }

    public void setUserid(int userid) {
        this.userid = userid;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public int getUserage() {
        return userage;
    }

    public void setUserage(int userage) {
        this.userage = userage;
    }
}
2、view层

我个人理解是将activity部分视为整个框架下的view层,其中也包括activity对应的xml布局:

xml布局部分:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent" tools:context=".MainActivity"
    android:orientation="vertical">
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <Button
        android:id="@+id/btn_load_data"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp"
        android:layout_height="wrap_content"
        android:text="加载数据"/>
    <Button
        android:id="@+id/btn_save_data"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:layout_marginRight="20dp"
        android:text="保存数据"/>

</LinearLayout>
    <TextView
        android:id="@+id/tv_result"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingBottom="10dp"
        android:textSize="16sp"/>

</LinearLayout>
对应的activity部分:

package com.xlc.mvclearn;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity implements View.OnClickListener{
    private Button btn_load_data;
    private Button btn_save_data;
    private TextView tv_result;
    private MainController controller;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        /**
         * 控件初始化
         */
        btn_load_data = (Button) findViewById(R.id.btn_load_data);
        btn_save_data = (Button) findViewById(R.id.btn_save_data);
        tv_result = (TextView) findViewById(R.id.tv_result);
        /**
         * 设置监听
         */
        btn_load_data.setOnClickListener(this);
        btn_save_data.setOnClickListener(this);

        /**
         * 控制器初始化
         */
        controller = new MainController();
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.btn_load_data:
                UserModel user = controller.getUser(1);
                tv_result.setText("用户id:"+user.getUserid()+"\n"+"用户姓名:"+user.getUsername()+"\n"
                        +"用户年龄:"+user.getUserage());
                break;
            case R.id.btn_save_data:
                controller.saveUser(new UserModel());
                break;
        }

    }
}

activity中主要是用来提供用户交互和展现的地方,这里是提供了加载和保存数据的两个按钮以及展现用户数据的textview。

3、controller

controller层主要是处理业务逻辑部分,包括从服务器加载数据或者从其他来源(数据库等)请求数据、或者保存数据到数据库。

package com.xlc.mvclearn;

/**
 * Created by acer on 2016/4/22.
 */
public class MainController {
    public MainController() {
    }

    public UserModel getUser(int userid){
        //从数据库或者从服务器接口获取数据
        UserModel user = new UserModel();
        user.setUserid(1);
        user.setUsername("mvc");
        user.setUserage(20);
        return user;
    }
    public void saveUser(UserModel userModel){
        //保存用户信息到数据库
    }
}

结语:一些比较粗糙的看法,有错误的地方,欢迎指出!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您提供一些关于基于MVC个人信息管理系统的信息。 首先,MVC是一种软件架构模式,它将应用程序分为三个主要组件:模型(Model)、视图(View)和控制器(Controller)。在一个基于MVC的应用程序中,模型表示数据和业务逻辑,视图负责用户界面和用户交互,而控制器则是处理用户输入和调用模型的方法来更新数据。 对于个人信息管理系统,模型可以包括用户的个人信息和相关数据,如姓名、地址、电话号码等。视图可以是一个用户友好的界面,提供了用户与系统交互的方式,例如一个网页或一个手机应用程序。控制器将用户输入解释为操作并更新模型中的数据。 在实现一个基于MVC个人信息管理系统时,您需要考虑以下几个方面: 1. 模型:设计一个合适的数据结构来存储用户的个人信息和相关数据。您可以使用关系数据库或非关系数据库来存储数据。 2. 视图:设计一个用户友好的界面,使用户可以方便地查看和修改他们的个人信息。您可以使用HTML、CSS和JavaScript来实现一个网页界面,或使用Android或iOS框架来实现一个移动应用程序界面。 3. 控制器:实现一个控制器来处理用户输入并更新模型中的数据。您可以使用Java、Python、Ruby等编程语言来实现控制器。 最后,您需要将这三个组件协调起来,确保它们能够正确地交互和协作。这可以通过使用框架来实现,例如Spring MVC、Django等。 希望这些信息可以帮助您了解基于MVC个人信息管理系统。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值