返回

由例说明,聊聊架构模式

Android

架构的概念很宽泛,不是一句 MVP、MVC、MVVM 就能说清楚的。从宏观上讲,一个 APP 软件是一个大的系统,通常可以把这个大的系统划分为许多个小的模块,比如:登录注册功能,首页展示功能、个人信息功能等等某个具体的模块的功能。然后我们可以把这几个相对独立的模块分别划分给不同的开发人员去开发,这样就可以大大提高开发效率。

在划分模块的时候,我们需要考虑模块之间的依赖关系,以及模块内部的结构。模块之间的依赖关系是指,某个模块需要使用另一个模块提供的功能。模块内部的结构是指,某个模块内部是如何组织的,比如是采用面向对象的方式还是面向过程的方式。

在软件开发中,有许多常用的架构模式,比如 MVC、MVVM、MVP 等。这些架构模式可以帮助我们更好地组织代码,使代码更易于理解和维护。

接下来,我们就用一个具体的例子来剖析一下 MVC、MVVM、MVP 这三类架构模式的特点及相互联系。

假设我们有一个简单的登录注册功能,这个功能需要实现以下功能:

  1. 用户输入用户名和密码
  2. 系统验证用户名和密码是否正确
  3. 如果验证通过,则跳转到首页
  4. 如果验证不通过,则提示用户用户名或密码错误

我们可以使用 MVC、MVVM、MVP 这三种架构模式中的任何一种来实现这个功能。

MVC

MVC 是 Model-View-Controller 的缩写,它是比较传统的一种架构模式。在 MVC 模式中,数据模型(Model)负责数据的存储和处理,视图(View)负责数据的展示,控制器(Controller)负责处理用户交互。

MVC 模式的优点在于,它非常清晰地分离了数据模型、视图和控制器,使得代码更易于理解和维护。MVC 模式的缺点在于,它可能会导致代码过于臃肿,并且可能会增加开发难度。

MVVM

MVVM 是 Model-View-ViewModel 的缩写,它是一种比较新的架构模式。在 MVVM 模式中,数据模型(Model)负责数据的存储和处理,视图模型(ViewModel)负责数据的展示和处理用户交互,视图(View)负责数据的展示。

MVVM 模式的优点在于,它可以很好地分离数据模型、视图和视图模型,使得代码更易于理解和维护。MVVM 模式的缺点在于,它可能会导致代码过于臃肿,并且可能会增加开发难度。

MVP

MVP 是 Model-View-Presenter 的缩写,它是一种比较灵活的架构模式。在 MVP 模式中,数据模型(Model)负责数据的存储和处理,视图(View)负责数据的展示,表示层(Presenter)负责处理用户交互。

MVP 模式的优点在于,它可以很好地分离数据模型、视图和表示层,使得代码更易于理解和维护。MVP 模式的缺点在于,它可能会导致代码过于臃肿,并且可能会增加开发难度。

总之,MVC、MVVM、MVP 这三种架构模式各有优缺点,没有一种架构模式是完美的。在实际开发中,我们可以根据具体的情况选择合适的架构模式。