我曾经写一篇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扼杀了。