我是靠谱客的博主 阳光砖头,最近开发中收集的这篇文章主要介绍Android App开发架构之:MVC,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

[](()优点

===========================================================

  1. 上手快。新建工程的时候,Android已经分配了XML和Activity,这样直接对应View层和Controller层,我们只需要增加model模块处理好数据即可。

  2. 由于Controller层承担了较多的处理j界面展示和数据处理的功能,相对来说简化业务模块和功能模块的划分。

[](()缺点

===========================================================

  1. View层以XML作为实现,其控制能力太弱,比如动态地更新View状态就不能通过View来实现;

  2. Control层既负责处理UI更新,又负责处理业务,职责臃肿;

  3. Control层未做到完全将View层和Model层隔离,因为View层可以直接访问Model层(如自定义View类),导致View层和Model层耦合性增强;

  4. Control层负担太重,导致代码过多,后期开发、测试及维护困难;

[](()适用范围

=============================================================

App需求功能不多,版本迭代不频繁,需要段时间内完成。

[](()实例

===========================================================

View:

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android=“http://schemas.android.com/apk/res/android”

android:layout_width=“match_parent”

android:layout_height=“match_parent” 《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》无偿开源 徽信搜索公众号【编程进阶路】

android:background=“@color/base_bg”>

<TextView

android:id=“@+id/tv_activity_mvc”

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:textSize=“30sp”

android:layout_centerInParent=“true”/>

Controller:

public class MVCActivity extends BaseActivity {

RetrofitManager mRetrofitManager;

@BindView(R.id.tv_activity_mvc)

TextView mTextView;

@Override

protected int getContentViewLayoutID() {

return R.layout.activity_architecture_mvc_activity;

}

@Override

protected void initViewsAndEvents(Bundle savedInstanceState) {

mTextView.setText(“I don’t do anything, but this is a MVC show anyway. Click me!”);

mRetrofitManager = new RetrofitManager();

}

@OnClick(R.id.tv_activity_mvc)

public void onClick(View view) {

switch (view.getId()) {

case R.id.tv_activity_mvc:

mRetrofitManager.createApi(MyApplication.getInstance().getApplicationContext(), GankApis.class)

.getHistoryDate()

.subscribeOn(Schedulers.io())

.observeOn(AndroidSchedulers.mainThread())

.subscribe(new BaseObserver<GankRes<List>>() {

@Override

public void onError(ApiException exception) {

LogUtil.e(TAG, “error:” + exception.getMessage());

}

@Override

public void onSuccess(GankRes<List> listGankRes) {

LogUtil.i(TAG, listGankRes.getResults().toString());

if (!MVCActivity.this.isFinishing() && !MVCActivity.this.isDestroyed()) {

mTextView.setText(“yes, I get it from net!”);

}

}

});

break;

}

}

}

Model

public class RetrofitManager {

private static final String TAG = “RetrofitManager”;

private static Retrofit singleton;

private static OkHttpClient okHttpClient = null;

private static String BASE_URL = “http://127.0.0.1”;

private void init() {

initOkHttp();

}

public RetrofitManager() {

init();

}

最后

以上就是阳光砖头为你收集整理的Android App开发架构之:MVC的全部内容,希望文章能够帮你解决Android App开发架构之:MVC所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(77)

评论列表共有 0 条评论

立即
投稿
返回
顶部