0
点赞
收藏
分享

微信扫一扫

Android MVC开发框架

沪钢木子 2023-04-08 阅读 113


Android MVC开发框架
MVC

目前在Android中比较受欢迎的开发框架包括:MVC 、MVP 、MVVM,项目中使用这些框架是为了快速开发和方便开发,本章只要介绍MVC开发框架。

MVC 框架图(来源于网络)

Android MVC开发框架_mvc

在Android中

Model:数据处理(网络请求、SQL等)

View:layout view 控件等

Controller:Activity 、 Fragment

Android MVC开发框架_android_02

代码

package com.rain.mvc_demo;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

import com.rain.mvc_demo.callback.CallBack;
import com.rain.mvc_demo.entity.Account;
import com.rain.mvc_demo.model.MvcModel;

public class MainActivity extends AppCompatActivity  implements View.OnClickListener {
    EditText et_text;
    Button btn;
    TextView content;
    MvcModel mvcModel;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();

        mvcModel=new MvcModel();
    }

    private void initView() {
        et_text=findViewById(R.id.et_text);
        btn=findViewById(R.id.btn);
        content=findViewById(R.id.content);
        btn.setOnClickListener(this);
    }

    @Override
    public void onClick(View view) {
        switch (view.getId()){
            case R.id.btn:
                   mvcModel.setAccountData(getDataString(), new CallBack() {
                       @Override
                       public void onSuccess(Account account) {
                           showSuccessPage(account);
                       }

                       @Override
                       public void onFailed() {
                           showFailedPage();
                       }
                   });
                break;
        }
    }

    public String getDataString(){
        return et_text.getText().toString().trim();
    }

    public void showSuccessPage(Account account){
        content.setText("用户账户:"+account.getName()+"|"+"等级:"+account.getLevel());
    }

    public void showFailedPage(){
        content.setText("页面获取失败");
    }
}

页面布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center"
    tools:context=".MainActivity">


    <EditText
        android:id="@+id/et_text"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="输入框"/>


    <Button
        android:id="@+id/btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="获取内容"/>

    <TextView
        android:id="@+id/content"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>


</LinearLayout>

MVC优点

一定程度上实现了Model与View的分离,降低了代码的耦合性。

MVC缺点

Controller 与 View 难以完全解耦,并且随着项目复杂的提升,Controller将越来越臃肿。

代码获取

回复关键字: 源码


举报

相关推荐

0 条评论