| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 移动开发 -> Android 架构设计(一):设计模式分析 -> 正文阅读 |
|
[移动开发]Android 架构设计(一):设计模式分析 |
今天深海将给大家分享一下个人对现有Android架构的分析和总结; Android 架构设计(二):分包和文件结构 ? ?//敬请期待 Android 架构设计(三):三方框架推荐 ? ?//敬请期待 Android 架构设计(四):组件化?? ?//敬请期待 现有Android主流设计模式有哪些?1:无架构? ? ? ? ?- 很多人把无架构定为MVC ,这边深海要纠正一下,无架构 != MVC? 2:MVC? ? ? ? ? ?
?图我就直接拿网图了,不过网图画的不对,我这边纠正了一下,View与Controller是相互持有,因为View需要持有Controller才可以调用其方法,而Controller必须持有View才可以改变它,Model没有持有View的必要。 这个网图的原作者可能对与MVC的理解和深海有所不同。 优点: 简单,类少,文件少,很小的项目或者很大的项目都可以用。 缺点: 业务越复杂,越乱,文件少意味着文件个头大。 适合小项目或者逻辑不是太复杂的大项目, 自从MVP兴起后使用率逐渐变低,从MVVM兴起后几乎绝迹,MVC大多看到的是老项目的影子。或者很小的项目和独立开发的项目。 3:MVP? ? ? ? ? ?
与MVC的核心区别:
优点是职责清晰,接藕。缺点是接口多,文件多,代码多。 至今都被人认为是Android最主流的架构设计模式,但是MVVM出现后很大一部分的新项目都采用了MVVM的结构,且比率还在不断提高。 4:MVVM? ? ?使用举例:Android MVVM最简易举例(ViewModel&LiveData)_赵星海的博客-CSDN博客_android mvvm?- 数据驱动为核心。ViewModel作为View的数据映射,View的所有数据均来自ViewModel。View改变时调用ViewModel的方法处理逻辑并改变其数据。同时View通过DataBinding或者LiveDate监听数据的改变而改变UI; 各自职责:
?这个图我自己画一下,因为网图不够明确。 与MVP的区别:
优点: 逻辑清晰,代码文件也少 缺点(大多是Databinding的缺点):
深海个人不推荐使用Databinding,? 推荐使用LiveData+Kotlin布局引入插件。 深海认为 布局文件应该保证其简单性和职责单一性! |
|
移动开发 最新文章 |
Vue3装载axios和element-ui |
android adb cmd |
【xcode】Xcode常用快捷键与技巧 |
Android开发中的线程池使用 |
Java 和 Android 的 Base64 |
Android 测试文字编码格式 |
微信小程序支付 |
安卓权限记录 |
知乎之自动养号 |
【Android Jetpack】DataStore |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 7:20:57- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |