到底什么是MVC?
这篇讲的是MVC架构模式如何从桌面时代演化到Web时代。作者从经典MVC(Model-View-Controller)模型的三大组件及其依赖关系入手,解释了它为何在处理复杂业务逻辑时会陷入两难——比如音量调节时背景色变化的逻辑,既不适合放在Model也不适合放在View。 为了解决这个问题,文章梳理了后续的演进路径:先是Smalltalk团队在80年代引入了“Application Model”层作为中继,试图分离复杂逻辑,但这又带来了新问题。接着,IBM在90年代提出了MVP(Model-View-Presenter)模式,通过让Presenter直接持有View的引用来处理复杂交互,解决了可观测性和可测试性之间的矛盾。 文章最后将视角转向Web。由于HTTP无状态的特性,传统观察者模式无法适用,于是演化出了Web MVC(如Rails所采用的架构),其中Controller更多地承担了协调调度职责。整体来看,这就像一部微型架构思想史,清晰展示了技术模式是如何在实际问题的驱动下不断调整和迭代的。对于想理清MVC、MVP等概念区别与联系的开发者来说,这篇文章把演化脉络讲得挺明白。