Android架构设计——MVC,kotlinui封装

MVC是Model View Controller的缩写,它是指模型(model)-视图(view)-控制器(controller)这一设计架构。其中:

  • Model(模型层):负责数据的加载和存储

  • View(视图层):负责界面数据的显示,与用户进行交互

  • Controller(控制器层):负责逻辑业务的处理

流程


目的


架构设计的目的是通过设计使程序模块化,做到模块内部的高聚合和模块之间的低耦合。提高开发效率,且能方便后续的测试及问题定位。但是对于不同量级,不同需求的APP,适合的架构是视情况而定的,切不可硬套架构。

定义


MVC是Model View Controller的缩写,它是指模型(model)-视图(view)-控制器(controller)这一设计架构。其中:

  • Model(模型层):负责数据的加载和存储

  • View(视图层):负责界面数据的显示,与用户进行交互

  • Controller(控制器层):负责逻辑业务的处理

流程


  • View接受用户的请求,然后将请求传递给Controller。

  • Controller进行业务逻辑处理后,通知Model去更新。

  • Model数据更新后,通知View去更新界面显示。

Android中的MVC


Android中界面部分也采用了MVC框架:一般由Activity充当Controller,XML文件作为View层,再加上我们抽离出的Model层。

视图层(View)

一般采用XML文件进行界面的描述,这些XML可以理解为AndroidApp的View。使用的时候可以非常方便的引入,且便于后期界面的修改。逻辑中与界面对应的id不变化则代码不用修改,大大增强了代码的可维护性。

控制层(Controller)

Android的控制层的重任通常落在了众多的Activity的肩上。Android中的Actiivity的响应时间是5s,如果耗时的操作放在这里,程序就很容易被回收掉。所以一般不在Activity中写耗时操作代码,要通过Activity交割Model业务逻辑层处理。

模型层(Model)

我们针对业务模型,建立的数据结构和相关的类,就可以理解为AndroidApp的Model,Model是与View无关,而与业务相关的。对数据库的操作、对网络等的操作都应该在Model里面处理,当然对业务计算等操作也是必须放在该层的。

各层内容

Android MVC小例子


下面来看一个简易的demo代码,它的功能是:点击屏幕上的刷新按键后,给出应用运行的时长。

代码

//Model层

public class TimeModel {

private static final long START_TIME = System.currentTimeMillis();

public void update(ControllerActivity controllerActivity) {

//更新数据

String timeText = Double.toString((System.currentTimeMillis() - START_TIME)/1000.0);

//更新UI

controllerActivity.setText(timeText);

}

}

<LinearLayout xmlns:android=

“http://schemas.android.com/apk/res/android”

android:layout_width=“match_parent”

android:layout_height=“match_parent”

android:orientation=“vertical”

android:gravity=“center”>

<TextView

android:id="@+id/tv_show"

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:textSize=“30sp”

android:text="@string/time_text"/>

<Button

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值