MVC模式是否到了应该终结的时候?

13-02-21 banq
我曾经写一篇MVC模式已死,认为MVC这种结构性静止模式无法适应动态通讯日益频繁的新需求,今天看到Dzone一篇文章:

MVC模式是否到了应该终结的时候?

文章主要从耦合解耦角度来看这问题,传统MVC带来紧耦合:

作者提出松耦合的设计图:

作者引入了事件模型达到松耦合,配置如下:

<?xml version="1.0"?>
<application initial="A">
    <module id="A">
        <on event="next" to="B"/>
    </module>


    <module id="B" >

        <on event="previous" to="A"/>
        <on event="next" to="C"/>
    </module>


    <module id="C">

        <on event="previous" to="B"/>
        <on event="next" to="D"/>
    </module>


    <module id="D">

        <on event="previous" to="C"/>
        <on event="finish" to="finish"/>
    </module>


    <on event="cancel" to="cancel"/>

    <final id="finish" />
    <final id="cancel" />
</application>
<p>

配置文件相当于一个状态机(Finite State Machine),将事件状态通过状态模式进行了很好的松耦合分离。

作者认为可以通过Spring Web Flow 和 Lexaden Web Flow来实现这种配置。

banq注:看来事件模型不但对业务领域形成冲击革新,也将革新前端,本来JS提出的EDA概念很好,却被落后的前端中间件如Struts SpringMVC JSF扼杀了。

              

6
lostalien
2013-02-21 17:42
JS提出的EDA概念

这个如何理解?

banq
2013-02-22 09:06
2013-02-21 17:42 "@lostalien"的内容
JS提出的EDA概念 ...

准确说应该是事件驱动概念,无论浏览器的JS还是后端Node.js

MVC模式是从页面与控制器这种大粒度角度出发,把请求响应看成在它们之间穿针引线。MVC模式这种特点是强调主要是页面控制器这样结构,其次才是请求响应。而随着Web 2.0等互动可响应需求不断提升,“请求响应”才应该是主要的。

事件模型-下一个前沿批评了这种“请求响应”思维视角:

人们必须以事件驱动EDA的方式思考,而不是传统的请求驱动的方式思考。

如果我们从EDA方式,而不是请求响应方式来思考MVC模式,MVC模式其实真的不存在了,横看成岭侧成峰。

猜你喜欢