请大家谈谈MVC开发模式

    
tiny_fgj 03-09-13

小弟请教各位大哥:
现在很多书上都有对MVC开发模式的介绍,不过看起来都挺抽象的。一般书中都如下介绍:Model(模型)模型包含应用程序的核心功能。模型封装了应用程序的状态。有时它包含的唯一功能就是状态。它对视图或控制器一无所知。
View(视图)视图提供模型的表示。它是应用程序的外观。视图可以访问模型的读方法,但不能访问写方法。此外,它对控制器一无所知。当更改模型时,视图应得到通知。
Controller(控制器)控制器对用户的输入作出反应。它创建并设置模型。 说的太抽象,能不能给我举一个比较具体的例子.

比如说有如下一个程序(用java swing写成)

窗体上包含一个文本框,一个按钮,还有一个标签显示文本,同时程序中有一个字符串保存文本框的值,按钮注册了一个监听器,当按钮被点击的时候,标签显示文本框中的内容,字符串的值也被改变。

在这个例子中,那些部分可以被划分为model,哪些部分可以被划分为view,哪些部分又是controller,他们之间又如何相互作用,相互影响.

请大家赐教,我的邮箱:tiny_fgj@emails.bjpu.edu.cn

bfh365
2003-09-15 08:23

M:标签和字符串随着显示文本框中的内容而改变
V:你的界面
C:按钮注册的监听器

有时这三者是比较模糊的,不需要太清楚。如果太清楚,反而教条化。MVC是个架构模式,它比我们平时说的23种设计模式的范围要大。MVC里面会用到了23种模式中的一些。

在我平时编程中我们都会不知不觉的用到MVC。

学习模式是掌握它的精神,不要教条化,不能生搬硬套。记住:23种模式之间是有关联的,是相对独立。

banq
2003-09-15 12:14

同意bfh365的划分,其中主要是对Model的认识,Model可以理解为显示内容的意思,
View是包含不同Model内容的显示页面,因为Model显示内容不同,View分很多种。
controller是决定控制推出何种显示页面。