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模式,必须详细研读以上文章。必有所得啊。

相关推荐