重温MVC

来源:互联网 发布:龙之信条捏脸数据 编辑:程序博客网 时间:2024/05/22 13:08

MVC包括三类对象,Model是应用对象(如非持久数据)、View为其屏幕表示、Controller定义了对用户输入的处理(反应)方式。在应用MVC方式以前,通常将这三个对象的功能合到了一起,应用MVC分离了它们,为设计提供了灵活性和可重用性。

 

MVC通过在view和model之间建立Subscribe/Notify协议,分离了view和model对象。View对象必须保证它的表示反应了model对象的状态,当model对象的数据改变时,model对象通知(Notify)view对象,作为对这一行为的反应,每个view对象得到了一个做出更新的机会。这种方式使得可以将多个view对象为一个model对象提供不同的表示。你也可以为model对象建立新的view对象,而不用重新编写model。

同样,MVC也可改变视图类(view)对用户反应的方式,而不用改变其可视化表示。你可能想改变其对键盘响应的方式,如,使用弹出菜单代替命令键。MVC将这种反应机制封装为控制对象(Controller)。控制器有一个类层次,易于实现从一个已存在的控制器建立出一个变种—一种新的控制器。

 

视图(view)对象通过某一控制器对象的实例(instance)来实现特定的响应策略。为了实现不同的策略,可以简单的使用不同的控制器实例来替换当前的实例。甚至可以在运行时来改变视图的控制器,以改变视图对象对用户输入的响应(策略)。例如,一个view对象可置为disabled,即对用户的输入不做任何响应。要达到这一目的,仅仅只需让控制器忽略所有input事件。 

原创粉丝点击