开发架构 | 青训营

63 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的第3天,今天在写项目,在项目架构方面根据需要,了解了现下比较流行的几种主流架构,在此做笔记

为什么要使用架构

  • 刚接触编程的时候,遇到需求直接就一股脑实现就行,但是这样的坏处在于:开发一时爽,维护火葬场。也难免会造成自己写的代码,即不美观,逻辑性又不强,同时可读性还极差。。。

  • 那么从软件开发的角度出发,使用架构的优势就体现出来了

    • 设计阶段:模块化代码
    • 开发阶段:提高开发效率,代码复用、扩展
    • 测试阶段:测试简单
    • 维护阶段:维护方便
  • 下面就一起来看看当前的主流架构,以及其相关的基本概念,如果你以前没了解过这方面的,那希望这篇文章可以帮你快速扫盲

MVC

  • MVC:

    • M:Model
    • V:View
    • C:Controller
  • 理想:M、V、C,三层的代码分开解耦

  • 实际:M独立,V、C界限不明,无法分离,都堆在 Activity 中,显得很臃肿

  • image-20220727163615337

MVP

  • MVP:

    • M:Model
    • V:View
    • P:Presenter
  • 优点:

    • 面向接口编程、依赖倒置
    • 结构十分清晰,便于复用
  • 缺点:接口爆炸 image-20220727163626215

MVVM

  • MVVM:

    • M:Model
    • V:View
    • VM:ViewModel,记录被观测的数据
  • 一言概之:双向绑定,观察者设计模式

  • 优点:

    • 反应快速
  • 缺点:

    • 出现 bug 的时候不好分析?

MVI

  • 相关概念:

    • 单向数据流
    • 唯一可信数据源
  • MVI:

    • M:Model
    • V:View
    • I:Intent image-20220727164840969

后记

  • 各个架构之间,虽然各有优缺点,但是并没有优劣之分,具体使用哪种架构,当然还是根据项目来进行选择,没有最好的,只有最合适的,当然,我们也不要忘记初心,如果项目本身就比较小,又以及明确不再需要进行维护加新的话,哪怕不用架构,也是可以的,比较一切都是为了开发方便和开发效率