Android 架构之 MVC 架构模式

前言

由于 MVP、MVVM、组件化架构的兴起,MVC 架构在 android 中的应用变得越来越少,但 MVC 是基础,理解好 MVC 才能更好的理解 MVP,MVVM,因为后两种都是基于 MVC 发展而来的。

有些人认为只要架构好 App 就做得好,这种认识其实是错误的,架构的本质一定是服务于业务的。每一种架构一定有它的优点和缺点,能适合自己的需求、提高开发效率的架构就是一个好的架构。

例如一个功能相对比较简单并且后期也不再扩展的 App,完全可以用 MVC 架构来写,将逻辑全部写在 Activity 或者 Fragment 里,如果你用 MVP 这种架构,相应的你就要增加很多类,可能并不能提高你的开发效率。

Android 中 MVC 模式角色说明

在 Android 中项目中,MVC 中的 View 就是我们的 XML,而逻辑就是我们的 Activity 或者 Fragment 等类,他们的分工是明确的,布局就负责 UI,Activity 就负责逻辑,Model 负责数据的处理。

类型 定义 表现形式
M(Model) 模型层(数据存储、逻辑处理) Model 类
V(View) 视图层(UI 展示) 布局文件、Activity
C(Controller) 控制层(逻辑处理) Activity

MVC 实例讲解

我相信 MVC 架构大家都知道,理论部分我就不讲那么多了,我们通过一个实例来讲解 MVC 架构的具体实现。

这个实例的整体功能非常简单,就是利用 Okhttp 请求一个 url,然后利用 Gson 解析数据,Glide 显示图片,RecyclerView 显示列表,实例效果如下所示,这里我使用的 API 是从干货集中营 上找的,API 是:https://gank.io/api/v2/data/category/Girl/type/Girl/page/2/count/10

image.png

创建实体类

image.png
通过接口返回的 Json 数据,我们就可以创建实体类了,我们可以手动写,也可以用工具直接生成,如果是用 Java 语言,我推荐用 GsonFormat,如果是用 Kotlin 语言,就用 JsonToKotlinClass 插件来自动生成,因为我是用 Kotlin 语言来写的,所以我就用 JsonToKotlinClass 来自动生成实体类代码,如下所示:

data class DataBean(
        val data: List<Data>,
        val page: Int,
        val page_count: Int,
        val status: Int,
        val total_counts: Int
)

data class Data(
        val _id: String,
        val author: String,
        val category: String,
        val createdAt: String,
        val desc: String,
        val images: List<String>,
        val likeCounts: Int,
        val publishedAt: String,
        val stars: Int,
        val title: String,
        val type: String,
        val url: String,
        val views: Int
)

创建 View 层

视图层就是我们的布局文件,代码很简单,就是一个全屏的 RecyclerView,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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"
    
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值