我曾经写一篇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>
|
配置文件相当于一个状态机(Finite State Machine),将事件状态通过状态模式进行了很好的松耦合分离。
作者认为可以通过Spring Web Flow 和 Lexaden Web Flow来实现这种配置。
banq注:看来事件模型不但对业务领域形成冲击革新,也将革新前端,本来JS提出的EDA概念很好,却被落后的前端中间件如Struts SpringMVC JSF扼杀了。