`
何足道
  • 浏览: 33836 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

MVP和MVC

阅读更多

MVP(Model - View - Presenter)和MVC(Model - View - Controller)是实际项目开发中非常流行的两种设计模式,笔者看过很多文章讨论这两种模式有什么异同,甚至辩论孰强孰弱,看的一头雾水。

 

大家都认同的一点是MVP和MVC有很多共同点,比如他们都是为了解耦合显示层和业务逻辑层,他们都有Model这一层且都强化这一层的独立性(即数据模型绝不依赖于业务逻辑层的实现,更与显示层的实现无关),他们都有显示层且都外观上的实现全部交由显示层处理。那么不同点呢? 笔者认为,二者最大的不同就在于谁来处理用户的操作。

 

严格的MVC模式中,处理用户的操作(诸如用户点击了一个按钮,或者用户删掉了一行数据)绝对是由Controller来处理的,View顶多就是fire一些event。在MVP中,View的职责就要广泛的多。而在现在流行的GUI系统中,GUI的一些部件功能是比较强大的,完全有能力处理用户的简单操作,而不需要将所有的请求都发送给Controller。

 

从网上找了一张图:

 

 

分享到:
评论

相关推荐

    Android MVP和MVC模式比较Demo

    本项目通过一个登录Demo对比分析了两种常见的架构模式:Model-View-Presenter(MVP)和Model-View-Controller(MVC)。这两种模式在处理业务逻辑、数据流和界面展示方面有着各自的特点。 **MVP(Model-View-...

    mvp-mvc_demo

    **MVP(Model-View-Presenter)与 MVC(Model-View-Controller)是两种常见的软件设计模式,尤其在Android和Web开发中广泛使用。这两种模式都旨在实现业务逻辑、用户界面和数据之间的分离,提高代码的可维护性和可...

    Android中的MVP测试demo.rar

    从MVC和MVP两者结合来看,Controlller/Presenter在MVC/MVP中都起着逻辑控制处理的角色,起着控制各业务流程的作用。而 MVP与MVC最不同的一点是M与V是不直接关联的也是就Model与View不存在直接关系,这两者之间间隔...

    MVP与MVC的区别

    MVP 是从经典的模式MVC演变而来,它们的基本思想有相通的地方:Controller/Presenter负责逻辑的处理,Model提供数据,View负责显示.

    浅谈三大模式(mvc,mvp,mvvm)

    通过观察和实践,你可以掌握如何在实际项目中有效地运用MVC、MVP和MVVM,以及如何利用观察者模式和事件系统优化应用程序的结构和交互。 总的来说,MVC、MVP和MVVM都是为了提高代码的可读性、可维护性和可测试性而...

    设计模式学习:Model View Presenter (MVP) mvc mvp

    MVC和MVP都是用于组织用户界面的架构模式,它们有助于解耦代码,提高可维护性和可测试性。MVP在可测试性和职责划分上更为严格,但可能带来额外的编码工作。选择哪种模式取决于项目需求、团队习惯以及对可测试性的...

    MVC和MVP深度对比

    **MVC(Model-View-Controller)和MVP(Model-...综上所述,MVC和MVP都是为了实现业务逻辑与用户界面的分离,但在具体实现和优势上有所不同。选择哪种模式取决于项目的规模、团队的偏好以及对测试和可维护性的需求。

    MVC、MVP和MVVM

    本示例着重探讨了三种常见的架构模式:MVC(Model-View-Controller)、MVP(Model-View-Presenter)和MVVM(Model-View-ViewModel),以及DataBinding的基本运用。下面将对这些知识点进行详细解释。 首先,我们来...

    Android一些关于MVC,MVP,MVVM以及Rxjava,WMRouter,ARoute,Zxing等框架一些问题总结

    在Android开发中,MVC(Model-View-Controller)、MVP(Model-View-Presenter)和MVVM(Model-View-ViewModel)都是常见的架构模式,它们各有优缺点,适用于不同类型的项目需求。此外,RxJava、WMRouter、ARoute和...

    MVC和MVP的区别

    MVC和MVP都是为了提高软件设计的结构化和可维护性。MVC通过Controller协调视图和模型,而MVP则通过Presenter来解耦视图和模型,提供更强的测试支持。开发者可以根据项目特性和团队需求来决定采用哪种模式。

    MVC与MVP代码实现在android上

    总结来说,MVC和MVP都是为了使Android应用程序的结构更加清晰,易于维护。MVP通过引入Presenter,进一步增强了这种分离,减少了视图和模型的直接交互,使得代码更加模块化和可测试。在实际项目中,开发者可以根据...

    Android mvc、mvp、mvvm示例

    **模型(Model)**:仍然处理数据和业务逻辑,与MVC和MVP中的模型相同。 **视图(View)**:与用户交互,展示数据,但不处理任何业务逻辑。在MVVM中,视图通常通过数据绑定直接与ViewModel交互。 **ViewModel**:...

    几张图看明白MVC MVP MVVM

    3. **模型(Model)**:与MVC和MVP中的模型概念相同,负责数据的存储和处理。 MVVM模式的关键特性是视图模型和视图之间的数据双向绑定,这种绑定减少了编程的工作量,因为不需要编写代码来更新视图,当模型数据变更...

    Android中的MVC、MVP和MVVM

    Android中MVC、MVP和MVVM的使用,区别,以及使用场景

    MVC_MVP_MVVM_demos

    - **Model**:仍然负责数据和业务逻辑,与MVC和MVP相同。 - **View**:显示用户界面,但不直接操作Model。通过数据绑定,View的变化会自动反映到ViewModel,反之亦然。 - **ViewModel**:作为View和Model之间的中间...

    mvc,mvp,mvvm简单框架

    1. **模型(Model)**:仍然负责业务逻辑和数据管理,与MVC和MVP中的模型类似。 2. **视图(View)**:用户界面,但其状态和行为直接绑定到ViewModel的属性和命令。 3. **视图模型(ViewModel)**:作为视图和模型...

    MVC和MVP模式项目实现

    在软件开发领域,MVC(Model-View-Controller)和MVP(Model-View-Presenter)是两种常见的设计模式,用于构建用户界面。这两种模式都致力于分离关注点,提高代码的可测试性和可维护性。这里我们将深入探讨这两种...

    android mvc、mvp、mvvm项目源码

    在Android应用开发中,选择合适的架构模式...例如,小型项目可能更适合MVC,而大型复杂项目则可能受益于MVP或MVVM的结构清晰和低耦合特性。在实际开发中,也可以根据团队经验和项目规模灵活选择和混合使用这些模式。

    MVP模式与mvc

    ### MVP模式与MVC模式详解 #### 一、MVP模式简介 MVP(Model-View-Presenter)模式是一种软件架构设计模式,主要用于构建用户界面。它是从经典的MVC(Model-View-Controller)模式演变而来的。MVP模式的核心在于它...

    moduledemo.zip

    这里我们关注的是两种常见的设计模式:Model-View-Presenter(MVP)模式和Model-View-Controller(MVC)模式。这两种模式都旨在分离应用程序的不同部分,提高代码的可读性、可维护性和可测试性。 首先,让我们详细...

Global site tag (gtag.js) - Google Analytics