MVC的创建者是Trygve M.H.Reenskau,挪威的计算机专家。
MVC体现的是关注点分离这一基本的设计方针。它将构成一个人机交互应用涉及的功能分为:Model、Controller和View三部分。
它们各自相应的职责:
1、Model是对应状态和业务功能的封装,我们可以将它理解为同时包含数据和行为的领域模型(Domain Model)。Model接受Controller的请求并完成相应的业务处理,在状态改变的时候向View发出相应的通知。
2、View实现可视化界面的呈现并捕捉最终用户的交互操作(比如鼠标和键盘操作)。
3、View捕捉到用户交互操作后会直接转发给Controller,后者完成相应的UI逻辑。如果需要涉及业务功能的调用,Controller会直接调用Model。在完成UI处理之后,Controller会根据需要控制原View或者创建新的View对用户交互操作予以响应。
View和Model存在直接的联系,View可以直接调用Model查询其状态信息。当Model状态发生改变时,它也可以直接通知View。从消息交换模式的角度来讲,Model针对View的状态通知和View针对Controller的用户行为都是单向的,但我们可以采用事件机制来实现这两种类型的通知。从设计模式的角度来讲就是采用观察者(Observer)模式通过注册/订阅的方式来实现它们。