Android MVC开发框架
MVC
目前在Android中比较受欢迎的开发框架包括:MVC 、MVP 、MVVM,项目中使用这些框架是为了快速开发和方便开发,本章只要介绍MVC开发框架。
MVC 框架图(来源于网络)
在Android中
Model:数据处理(网络请求、SQL等)
View:layout view 控件等
Controller:Activity 、 Fragment
代码
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将越来越臃肿。
代码获取
回复关键字: 源码