这是我参与「第四届青训营 」笔记创作活动的第3天,今天在写项目,在项目架构方面根据需要,了解了现下比较流行的几种主流架构,在此做笔记
为什么要使用架构
-
刚接触编程的时候,遇到需求直接就一股脑实现就行,但是这样的坏处在于:开发一时爽,维护火葬场。也难免会造成自己写的代码,即不美观,逻辑性又不强,同时可读性还极差。。。
-
那么从软件开发的角度出发,使用架构的优势就体现出来了
- 设计阶段:模块化代码
- 开发阶段:提高开发效率,代码复用、扩展
- 测试阶段:测试简单
- 维护阶段:维护方便
-
下面就一起来看看当前的主流架构,以及其相关的基本概念,如果你以前没了解过这方面的,那希望这篇文章可以帮你快速扫盲
MVC
-
MVC:
- M:Model
- V:View
- C:Controller
-
理想:M、V、C,三层的代码分开解耦
-
实际:M独立,V、C界限不明,无法分离,都堆在 Activity 中,显得很臃肿
-
MVP
-
MVP:
- M:Model
- V:View
- P:Presenter
-
优点:
- 面向接口编程、依赖倒置
- 结构十分清晰,便于复用
-
缺点:接口爆炸
MVVM
-
MVVM:
- M:Model
- V:View
- VM:ViewModel,记录被观测的数据
-
一言概之:双向绑定,观察者设计模式
-
优点:
- 反应快速
-
缺点:
- 出现 bug 的时候不好分析?
MVI
-
相关概念:
- 单向数据流
- 唯一可信数据源
-
MVI:
- M:Model
- V:View
- I:Intent
后记
- 各个架构之间,虽然各有优缺点,但是并没有优劣之分,具体使用哪种架构,当然还是根据项目来进行选择,没有最好的,只有最合适的,当然,我们也不要忘记初心,如果项目本身就比较小,又以及明确不再需要进行维护加新的话,哪怕不用架构,也是可以的,比较一切都是为了开发方便和开发效率