Heim  >  Fragen und Antworten  >  Hauptteil

Verwirrt über MVC- und MVP-Muster

Ich habe kürzlich einen Artikel über MVP gelesen. Er stellt lediglich vor, was das MVP-Modell ist.

Aber der Unterschied zwischen MVC und MVP ist wirklich nicht klar. Nachdem ich es gelesen habe, habe ich das Gefühl, dass „MVP nur MVC mit strengeren Spezifikationen ist.“

Welche Rolle spielt der Moderator beim MVP?

Ich habe ein paar Informationen über MVP nachgeschlagen. Es wird gesagt, dass der Presenter im Vergleich zum Controller in MVC die zusätzliche Funktion hat, Modell und Ansicht vollständig zu trennen. Aber tatsächlich können in meinem Konzept (in täglichen Anwendungen) Modell und Ansicht in MVC getrennt werden. In meiner normalen Entwicklung verarbeite ich die im Modell bereitgestellten Daten im Controller und rendere sie dann auf der Seite. Mit anderen Worten: MVC kann in vielen Fällen tatsächlich V und M trennen. Was ist also der Zweck oder Sinn des Vorschlags des MVP-Modells?

Ich hoffe, du kannst mir deine Meinung sagen, danke!

PHP中文网PHP中文网2713 Tage vor494

Antworte allen(3)Ich werde antworten

  • 世界只因有你

    世界只因有你2017-05-16 17:08:38

    我深信 没有不好的问题,只有不好的回答


    起初,只有命令行。

    软件工程师的灵就运行在 shell 上。

    Xerox 说:「要有 GUI」……

    一、桌面软件的 MVC

    感谢 Smalltalk。感谢 GUI。

    二、B/S 架构的 MVC

    后来,互联网兴起,于是程序员把自己的程序放到服务器上运行,此时 GUI 发生了变化。所有的界面的现实 (View层)换成了浏览器(HTML)。

    此时,MVC 被带到了 BS 架构。感谢 sun。感谢 struts。

    三、前端的 MVP

    再后来,浏览器越来越强悍,于是很多的业务放到了浏览器里面来执行。

    于是程序员们把 MVC 带到了 View 层。但是用 HTML+CSS+JS 做显示层,和传统的桌面 GUI 又有很大区别。 于是,为了充分发挥 js 语言的特点,MVP 就出现了。

    Antwort
    0
  • 为情所困

    为情所困2017-05-16 17:08:38

    Comparison of Architecture presentation patterns MVP(SC),MVP(PV),PM,MVVM and MVC

    [翻译] MVP(SC),MVP(PV),PM,MVVM 和 MVC 表现模式架构对比

    Antwort
    0
  • 黄舟

    黄舟2017-05-16 17:08:38

    架构的演进:

    MVC模式:
    View <-> Controller <-> Model;Controller不仅负责路由,而且同时负责业务层与表现层的衔接,在开发的时候可以灵活在控制器中配置的功能。在开发时不如MVP直观,关注点也没的MVP中更简洁。

    MVP模式:
    View <-> Presenter(Controller <-> Events) <--> Model;Presenter隐藏了路由,控制器部分,使开发无需关心消息的路由与控制层,精力放到每个消息引发的事件中,在事件中进行业务操作。使得开发更简单直观,但是牺牲了对控制器层操作的灵活性。

    MVVM模式:
    View <-> ViewModel <-> Model;ViewModel不仅可以充当MVP中Presenter的功能,同时ViewModel可以主动更新View。而不是单一的由View触发后台更新。可以这么说MVVM就是MVP的增强版本

    Antwort
    0
  • StornierenAntwort