海哥 发表于 2024-9-6 16:00:04

Android - MVC、MVP与MVVM架构

模子(Model)

MVC模式的中央组成部门。它是应用程序的动态数据布局,独立于用户界面。它直接管理应用程序的数据,逻辑和规则。
视图(View)

信息的任何表现形式,例如图表,图表或表格。可以利用同一信息的多种视图,例如用于管理的条形图和用于会计的表格视图。
控制器(Controller)

担当输入并将其转换为模子或视图的命令。
除了将应用程序划分为这些组件之外,模子-视图-控制器设计还定义了它们之间的交互。



[*] 模子负责管理应用程序的数据。它从控制器接收用户输入。
[*] 视图意味着以特定格式呈现模子。
[*] 控制器相应用户输入并在数据模子对象上实验交互。控制器接收输入,可选地对其举行验证,然后将输入通报给模子。
与其他软件模式一样,MVC表现问题的“解决方案核心”,同时答应其实用于每个系统。特定的MVC设计大概与此处的传统描述大不相同。
服务

在控制器和模子之间有时会有一个称为服务的层。它从模子中获取数据,并让控制器利用获取的数据。该层答应分离数据存储(模子),数据获取(服务)和数据操作(控制器)。由于此层不是原始MVC概念的一部门,因此在大多数环境下是可选的,但在某些环境下可用于代码管理和可重用性。
二、MVP
1.MVP(Model-View-Presenter)介绍。

MVP即为模子-视图-演示者,是MVC架构模式的派生产品,主要用于构建用户界面。在MVP中,Presenter负担“中间人”的功能,所有演示逻辑都被推送到Presenter。
MVP是一种用户界面架构模式,旨在促进自动化的单元测试并改善表现逻辑中关注点的分离。
模子(Model)

模子定义要在用户界面中显示或作用的数据的界面。
视图(View)

视图是一个被动的界面,用于显示数据(模子)并将用户命令(事件)路由到演示者以对该数据举行操作。
演示者(Presenter)

演示者会根据模子和视图举行操作。 它从存储库(模子)检索数据,并将其格式化以显示在视图中。
通常,视图实现实例化详细的Presenter对象,并为其提供引用。

2.项目Github地址。

https://github.com/mythmayor/MvpArchitecture
三、MVVM
1.MVVM(Model-View-ViewModel)介绍。

MVVM即为模子-视图-视图模子,是一种软件架构模式,可促进将图形用户界面(视图)的开发(通过标记语言或GUI代码)与业务逻辑或后台开发的分离。逻辑(模子),以便视图不依赖于任何特定的模子平台。 MVVM的视图模子是一个值转换器,表现视图模子负责以易于管理和呈现对象的方式公开(转换)来自模子的数据对象。在这方面,视图模子比视图更具模子性,可以处理大多数(不是全部)视图显示逻辑。视图模子可以实现中介者模式,围绕视图支持的一组用例来构造对后端逻辑的访问。
Model-View-ViewModel也称为Model-View-Binder,尤其是在不涉及.NET平台的实现中。
模子(Model)

模子是指表现真实状态内容的域模子(面向对象的方法),也是表现内容的数据访问层(以数据为中央的方法)。
视图(View)

就像在MVC模式和MVP模式中一样,视图是用户在屏幕上看到的内容的布局,布局和表面。它显示模子的表现并接收用户与视图的交互(单击,键盘,手势等),并通过数据绑定(属性,事件回调等)将这些操作的处理转发给视图模子。定义为链接视图和视图模子。
视图模子(ViewModel)

视图模子是视图的抽象,公开了公共属性和命令。 MVVM具有绑定程序,可以自动实验视图及其视图模子中的绑定属性之间的通讯,而不是MVC模式的控制器或MVP模式的演示者。视图模子已被描述为模子中数据的状态。
在MVP模式中,视图模子与Presenter之间的主要区别在于,Presenter具有对视图的引用,而视图模子则没有。相反,视图直接绑定到视图模子上的属性以发送和接收更新。为了有用运行,这必要绑定技能或生成样板代码来举行绑定。
绑定器(Binder)

声明性数据和命令绑定在MVVM模式中是隐式的。绑定器使开发人员不必编写模板逻辑来同步视图模子和视图。
MVVM基本原理

MVVM旨在利用WPF(Windows Presentation Foundation)中的数据绑定功能,通过从视图层中删除几乎所有GUI代码(“后置代码”)来更好地促进视图层开发与其余模式的分离。
MVVM模式试图通过将数据绑定到尽大概接近纯应用程序模子的方式来利用MVC提供的功能开发分离的上风,同时利用数据绑定和框架的上风。它必要利用Binder,视图模子和任何业务层的数据检查功能来验证传入的数据。结果是模子和框架驱动了尽大概多的操作,从而消除或最小化了直接操纵视图的应用程序逻辑(例如,后台代码)。
MVVM的劣势

利用MVVM的开销对于简朴的UI操作来说是过于巨大的。另外非常大的应用程序中举行数据绑定会导致相称大的内存消耗。
2.项目Github地址。

https://github.com/mythmayor/MvvmArchitecture
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里不停到如今。
深知大多数初中级Android工程师,想要提升技能,每每是本身摸索发展或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。本身不成体系的自学效果低效又漫长,而且极易遇到天花板技能停滞不前!
因此网络整理了一份《2024年Android移动开发全套学习资料》,初衷也很简朴,就是希望可以或许资助到想自学提升又不知道该从何学起的朋侪,同时减轻各人的负担。
https://i-blog.csdnimg.cn/blog_migrate/aa143eb6bc369a784a73787ab3bb7896.png
https://i-blog.csdnimg.cn/blog_migrate/baa06f0902fd6cf64948eff8cd0f1858.png
https://i-blog.csdnimg.cn/blog_migrate/7aabc7da21747ef79ee6088b6e3610f6.png
https://i-blog.csdnimg.cn/blog_migrate/2fd4630413da61d9a516833001b29e4f.png
https://i-blog.csdnimg.cn/blog_migrate/13e66ab632d85ab732e09f6822546a3d.png
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!
由于文件比力大,这里只是将部门目次截图出来,每个节点内里都包含大厂面经、学习条记、源码讲义、实战项目、解说视频,而且会连续更新!
假如你以为这些内容对你有资助,可以扫码获取!!(备注:Android)
https://i-blog.csdnimg.cn/blog_migrate/0341bda30b6fdb907f93b423c01a817c.jpeg 尾声

面试乐成其实都是必然发生的事情,因为在此之前我做足了充分的准备工作,不单单是纯粹的刷题,更多的还会去刷一些Android核心架构进阶知识点,比如:JVM、高并发、多线程、缓存、热修复设计、插件化框架解读、组件化框架设计、图片加载框架、网络、设计模式、设计思想与代码质量优化、程序性能优化、开发服从优化、设计模式、负载均衡、算法、数据布局、高级UI提升、Framework内核解析、Android组件内核等。
https://i-blog.csdnimg.cn/blog_migrate/0a5c0b82292121d36d36b7a7480ead11.png
不但有学习文档,视频+条记进步学习服从,还能稳固你的知识,形成良好的系统的知识体系。这里,笔者分享一份从架构哲学的层面来剖析的视频及资料分享给各人梳理了多年的架构经验,筹备近6个月最新录制的,信赖这份视频能给你带来不一样的启发、劳绩。
https://i-blog.csdnimg.cn/blog_migrate/a65ecf0efa923cc6add9ede37472b344.png
Android进阶学习资料库

一共十个专题,包罗了Android进阶所有学习资料,Android进阶视频,Flutter,java基础,kotlin,NDK模块,计算机网络,数据布局与算法,微信小程序,面试题解析,framework源码!
https://i-blog.csdnimg.cn/blog_migrate/fdea0fa0145da6a4a7a57c692868c483.png
大厂面试真题

PS:之前因为秋招网络的二十套一二线互联网公司Android面试真题 (含BAT、小米、华为、美团、滴滴)和我本身整理Android复习条记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)
https://i-blog.csdnimg.cn/blog_migrate/d8414c1d5f4546a9948463413271fdf7.png
《2017-2021字节跳动Android面试历年真题解析》
https://i-blog.csdnimg.cn/blog_migrate/cce638096ebc192b444ddc21345ae145.png
《互联网大厂面试真题解析、进阶开发核心学习条记、全套解说视频、实战项目源码讲义》点击传送门即可获取!
(img-8rIr9h5Y-1712995341197)]
《2017-2021字节跳动Android面试历年真题解析》
[外链图片转存中…(img-vIfIrSl4-1712995341197)]
《互联网大厂面试真题解析、进阶开发核心学习条记、全套解说视频、实战项目源码讲义》点击传送门即可获取!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: Android - MVC、MVP与MVVM架构