[最全]设计模式实战(八)MVC&MVP&MVVM

Android框架(*)

框架是大智慧,用来对软件设计进行分工;设计模式是小技巧,对具体问题提出解决方案,以提高代码复用率,降低耦合度。框架包括MVC、MVP和MVVM等。

MVC:

安卓MVC模式将应用程序分为模型(Model)、视图(View)和控制器(Controller)三个部分,其中,XML、Activity和Fragment是视图层,Activity和Fragment是控制器层,Model是模型层。

  • 模型(Model):负责数据处理相关的逻辑,例如数据库存取操作、网络操作、复杂算法和耗时任务等。

  • 视图(View):应用层中处理数据显示的部分,负责将用户的请求通知Controller,并根据model更新界面,XML布局文件可视为View层。

  • 控制器(Controller):接收用户请求并更新model,起到桥梁的作用,来控制View层和Model层通信以此来达到分离视图显示和业务逻辑层。在Android中,Activity处理用户交互问题,因此可以认为Activity是控制器,Activity读取View视图层的数据,并控制用户输入,同时向Model发送数据请求

MVC看作是3种设计模式:观察者模式、策略模式与组合模式的合体,而且其核心在观察者模式,也就是一个基于发布/订阅者模型的框架。

MVC缺点:

  • Activity即是View又是Controller,会很复杂。具体来讲:xml作为view层,控制能力实在太弱了,比如按钮点击动态改变UI,必须Activity协助操作视图,因此Activity即是View又是Controller。

  • View与Model之间存在依赖关系,Controller很重很复杂。具体来讲:View层的Activity会直接发起请求操作Model层,Model层返回的数据会更新Activity的相关视图。

MVP:

MVP中的View不能直接访问Model,需要通过Presenter发出请求。

Model(模型):负责处理数据的获取、存储和操作,例如与数据库、网络请求等进行交互。

View(视图):负责展示界面和接收用户的输入,通常是安卓中的 Activity、Fragment 或自定义视图组件。

Presenter( presenter ):作为 View 和 Model 之间的中介,处理业务逻辑和协调 View 与 Model 之间的通信。

优点:

  • 将View与Model解耦,方便进行单元测试。

  • Presenter层可通过实现接口与View层通信从而避免Presenter层与View层耦合。

  • activity和fragment不再是controll

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张云瀚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值