Skip to content

浅谈 三种常见的设计模式

MVC (Model-View-Controller)

MVC 模式将应用程序分为三个主要部分:

  • Model:负责数据的处理(增加、删除、更改、查询)和相关的业务逻辑。
  • View:接收用户的交互请求并根据需求展示数据给用户
  • Controller:View 和 Model 的连接器,接收 View 的要求并给对应的 Model 去处理。 https://pica.zhimg.com/v2-044e2f4f352421438bdaf87834a10090_1440w.jpg

MVP (Model-View-Presenter)

MVP 模式将 Controller 改名为 Presenter,只是为了与 MVC 区别开来,同时改变了通信方向。

  • ViewModel 不直接通信,都通过 Presenter 双向传递。
  • 解决了 MVC 中 Controller 的臃肿问题,由于担任 Controller 又担任部分 View 的职责,职责不清。
  • 但会使 Presenter 的代码暴增,所有逻辑都部署在那里。 https://picx.zhimg.com/v2-f0583437b61290fd81c776c4cbe4e053_1440w.jpg

MVVM (Model-View-ViewModel)

MVVM 模式将 Presenter 改名为 ViewModel,基本上与 MVP 模式完全一致。

  • 唯一的区别是,它采用数据绑定(data-binding),View 的变动,自动反映在 ViewModel。
    • 单向绑定:只在 ViewModel 变化后,View 会自动更新。
    • 双向绑定:如果 View 和 ViewModel 中的任何一方变化后,另一方都会自动更新。 https://pic1.zhimg.com/v2-ccab89e5c0e8dbdbc01cdaa369845948_1440w.jpg

总结

这三种设计模式都旨在分离应用程序的不同部分,以提高代码的可维护性和可扩展性。它们各有优缺点,选择哪种模式取决于具体的应用场景和需求。