作者回复: MVP 是 MVC 的变体,功能、层次和应用场景有所区别,下面是我的归纳,供参考。
简单说,对于 MVC 来说,Controller 层次上完全独立于 View,它可以跨多个视图、可以决定视图路由,更多存放的是控制逻辑,应用较为广泛,但多数在服务端代码中;
而对于 MVP 来说,Presenter 则其实是和 View 在相似的层次上,协调并把 Model 的数据绑定到指定 View 上去,主要用在纯粹 UI 的实现中。
作者回复: 第一条大致可以按你说的理解,但是第二条做个说明:VVM 和 MVVM 的区别在于实际的数据源头 M 消失了,因为有时候我们不需要它,比如设计一个可重用的组件。
作者回复: 这个取决于一致性的设计了。如果采用的是强一致性,比如关系数据库,那就可以保证在 View 调用的时候,前面 Controller 调用的更新能够被查询出来。
作者回复: 不清楚你说的“MVC 和一般设计相比”,这里的“一般设计”指的是什么。
作者回复: 你提到的 ② 和 ③,都属于 Model 层的一部分。我认为bean 简单来说指的就是可重用的封装对象,文中也有解释。从这个角度来说的话,满足这个条件都可以算,所以你说这两个的是算的。
作者回复: 模式本身来说,是没有前后端的限制的。不过,在实际使用中,因为解决的问题所在的层次特点,是带有明显的偏向的。
作者回复: 在 Windows 下你看看 Tomcat 的 bin 目录下有没有 version.bat,启动则是 startup.bat。
作者回复: 👍,补充说明一下,使用 Spring MVC 也是可以应用第二种的
作者回复: 从你描述来看,能运行 *.bat,是 Windows 系统吧,那就通过 startup.bat 启动吧。
作者回复: 👍
作者回复: 嗯,最重要的是理解原理。不严格地讲,这些说法都没问题。
作者回复: 你的描述有一些简单,什么是“接口服务里有service”?