MVC方式【行为模式第十三篇】

MVC模式【行为模式第十三篇】
MVC模式:就是模型-视图-控制器模式
一、架构模式
1、模型端
在MVC模型里,模型便是执行某些任务的代码,而这部分代码并没有任何逻辑决定它对用户端的表示方法。
模型端只有纯粹的功能性接口,也就是一系列的公开方法。通过这些公开方法,便可以取得模型端的所有功能。
在这些公开方法中,有些是取值方法,让系统其他部分可以得到模型端的内部状态参数,其他的改值方法则允许
外部修改模型端的内部状态。
但是一般来说,模型端必须有方法登记视图,以便在模型端的内部状态发生变化时,可以通知视图端。
在java语言里,一个模型端可以继承java.util.Observerable类。此父类可以提供登记和通知视图所需的接口。

2、多个视图端
在MVC模式里面,一个模型端可以有几个视图端,而实际上复数的视图端是使用MVC的原始动机。
使用MVC模式可以允许多余一个的视图端存在,并且可以在需要的时候动态地登记上所需的视图。
在Excel表格中,一个饼图、一个棒图和一个表格均是同组数据的不同视图端,当用户通过任何一个视图修改数据时,
所有的视图都会按照新数据更新自己。
在java语言的java.awt库和javax.swing库里,所有的视窗构件均可以用来建造视图端。但是一个视图如果能够自动
得到更新,便需要实现java.util.Observer接口,这样便使得MVC模式符合观察者模式的定义。
在视图端里,视图可以嵌套,这意味着在视图端里均会有合成模式。

3、多个控制器端
MVC模式的视图端是与MVCF模式的控制器结合使用的。当用户端与相应的视图发生交互时,用户可以通过视窗更新模型的状态,
而这种更新是通过控制器端进行的。控制器端通过调用模型端的改值方法更改其状态值。与此同时,控制器端会通知所有的登记
了的视图刷新显示给用户。这意味着在视图端对象和控制器端对象之间会有观察者模式的应用。
一个控制器端对象在回应视图端请求时,会采用策略模式的方式决定如何回应。

如果想深入了解java模式,必须详细研读以上文章。必有所得啊。
1 楼 strongant 2009-10-24  
难道,这就是mvc?
2 楼 strongant 2009-10-24  
有点扯淡了。。
3 楼 java苹果+番茄 2009-10-24  
strongant 写道
有点扯淡了。。

上面兄弟,如果不懂请不要妄加评论,谢谢。
4 楼 xinyu126 2009-10-25  
设计模式是看似简单。用时神奇的东西!!!支持!
5 楼 java苹果+番茄 2009-10-25  
前面兄弟讲的很正确,但是真正用于项目中的很少,而且我敢说就算是用了有很多程序员也未必能说出个所以然来。但是也不能死盯着设计模式,硬要使用它,只能用到有需要它之处啊,本想每个模式写个好点的例子,但这段时间项目太忙,所有如果有人感兴趣,可写点让大家分享一下,本人在此谢过。
6 楼 whaosoft 2009-10-26  
这么多的设计模式,项目中用到的却不是太多,只是那几个
7 楼 wocsok 2009-10-27  
楼主可能不太经常看源代码吧  看看JAVA源代码 所有的模式就都见全了  模式相当有用 建议深入研究  因为只要你写大于一个类的时候 就很有可能用到模式了 现在弄BS可能平时你们接触的模式少  但是要要做到真正的研究JAVA 就需要去研读源代码 这样你才能改一些东西 写一些更适合自己软件的东西  其实你看看SPRING源代码就好了  当然了你得把23种比较经典的源代码都熟悉了否则你指定看的一知半解的  呵呵  加油   程序员都是这么一点一点过来的
8 楼 java苹果+番茄 2009-10-27  
谢谢前辈指导,呵呵
9 楼 lynopl111404010622 2010-02-23  
我很认真的谢谢你。。。看了好几天了,呵呵。。
10 楼 zhangygood 2010-02-25  
在做项目的时候,二十三中设计模式中真正会去的很少。
11 楼 andsofish 2010-02-26  
切勿为了模式而模式,手中无剑心中有剑乃王道也
12 楼 liangcaijiu 2010-03-05  
对设计模式认识很浅,但在项目能上的很少,这可能大型用得多吧