软件中最核心的,最基本的东西是什么? 是数据,我们写的所有代码,都是围绕数据的。
围绕着数据的产生、修改等变化,出现了业务逻辑。
围绕着数据的显示,出现了不同的界面技术。
网上很多资料对MVC看似有矛盾,其实是因为MVC模式主流分为主动MVC和被动MVC两种。
主动MVC也是对应着传统MVC理论思想,其中的主动是表示,Model变化会主动通知View更新。
Modal: 封装与应用程序的业务逻辑相关的数据以及对数据的处理方法。不要认为Modal是数据库的Entity层,其实理解为业务层更恰当。
View: 负责数据的展示,因为是Modal主动更新View,所以View需要事先订阅Modal的变化
Controller: M和V之间的连接器,接受View层的变化并更新到Modal上

这是常规Web MVC框架使用的模式,如ASP .NET MVC,Struts。Controller是一个核心层,负责管理View和Modal。
被动MVC中,模型Modal对视图View和控制器Controller一无所知,仅仅是被使用。视图也不会主动订阅Modal的更新。视图的显示是根据控制器来决定。

实际项目中,对MVC的应用往往采用更灵活的方式,除了每层各司其职外,还需要加入用户的交互指令。
如果你熟悉ASP .NET MVC,一定对以下这张图不陌生。
