MVC即Model-View-Control设计模式,将软件分成了三个部分,很好的将业务逻辑与数据显示分离。

Model:
数据模型用于封装业务逻辑相关数据,以及对数据处理方法,例如程序员编写程序应有的功能,数据库专家进行数据库设计和数据库管理。模型可以直接访问数据而不依赖与视图或者控制器。并且模型并不关心他自己是如何被操作或者被显示的;模型的变化可以通过刷新的机制被显示在视图上。
View:视图层可以针对用户需求来有目的的显示数据。为了实现视图和模型的一致性,在刷新的时候,视图必须能够访问他所监视模型的数据。
Control:控制器起到不同层面的组织作用,用于控制应用程序的运行流程,他处理用户的行为和对数据模型上的改变作出响应。
事实上,视图和模型之间最好不要直接交互,而得通过控制器,来降低二者的耦合性。
MVC的优点:
多个视图能共享一个模型(例如一个网站既有WAP段的页面又有PC端的页面)
可以方便的更改业务逻辑规则和应用程序的数据层,因为控制器,视图,模型三者是相互独立的,改变其中一个,不会影响其他两个。
控制器提高了应用程序的灵活性和可配置性。例如可以控制器通过判断用户不同的操作来选择提供不同的模型和视图。

在MVC中View只需保留如何展现Model的逻辑,Control完成对业务组件的流程编排和调用而非所有实现。
Model:
数据模型用于封装业务逻辑相关数据,以及对数据处理方法,例如程序员编写程序应有的功能,数据库专家进行数据库设计和数据库管理。模型可以直接访问数据而不依赖与视图或者控制器。并且模型并不关心他自己是如何被操作或者被显示的;模型的变化可以通过刷新的机制被显示在视图上。
View:视图层可以针对用户需求来有目的的显示数据。为了实现视图和模型的一致性,在刷新的时候,视图必须能够访问他所监视模型的数据。
Control:控制器起到不同层面的组织作用,用于控制应用程序的运行流程,他处理用户的行为和对数据模型上的改变作出响应。
事实上,视图和模型之间最好不要直接交互,而得通过控制器,来降低二者的耦合性。
MVC的优点:
多个视图能共享一个模型(例如一个网站既有WAP段的页面又有PC端的页面)
可以方便的更改业务逻辑规则和应用程序的数据层,因为控制器,视图,模型三者是相互独立的,改变其中一个,不会影响其他两个。
控制器提高了应用程序的灵活性和可配置性。例如可以控制器通过判断用户不同的操作来选择提供不同的模型和视图。
在MVC中View只需保留如何展现Model的逻辑,Control完成对业务组件的流程编排和调用而非所有实现。
MVC的缺点:
在Swing中的MVC好像又是另外一套。感觉理解MVC还不是很深入。MVC的缺点就是没有明确的定义,难以理解,过于复杂,当将一个应用分解成相互独立的三个部分,是需要做相当多的额外工作,所以在工程量不大的项目中,一般不使用MVC。