`

从MVC理解设计模式

阅读更多
   本文将透过MVC来帮助我们理解“模式”这一术语的含义。
   MVC包含三类对象。模型Model是应用对象,视图View是它在屏幕上的标示,控制器Controller定义用户界面对用户输入的相应方式。不使用MVC,用户界面设计往往将这些对象混在一起,而MVC则将它们分离以提高灵活性和复用性。
   MVC通过创建一个“订购/通知”协议来分离视图和模型。视图必须保证它的显示正确地反映了模型的状态。一旦模型的数据发生变化,模型就通知有关的视图,每个视图相应地得到刷新自己的机会。这种方式可以让你为一个模型提供不同的多个视图表现形式,也能够为一个模型创建新的视图而无需重写模型。
   从表面上看,这个例子反映了将视图和模型分离的设计,然而这个设计还可以解决更一般的问题:将对象分离,使得一个对象的改变能影响到另一些对象,而这个对象并不需奥知道哪些被影响的对象的细节。这个更一般的设计被描述为Observer模式。
   MVC的另一个特征是视图可以嵌套。例如,按钮控制面板可以用一个嵌套了按钮的复杂视图来实现。对象查看器的用户界面可由嵌套的视图构成,这些视图又服用与调试器。MVC用View的子类----CompositeView类来支持嵌套视图。CompositeView类的对象行为上类似于View类对象,一个组合视图可用于任何视图可用的地方,但是它包含并管理嵌套视图。
   上例反映了可以讲组合视图与其构件平等对待的设计,同样的,该设计也适用于更一般的问题:将一些对象化为一组,并将该组对象当做一个对象来使用。这个设计被描述为Composite模式,该模式允许你创建一个类层次结构,一些子类定义了原子对象(如Button)而其他类定义了组合对象(CompositeView),这些组合对象是由原子对象组合而成的更复杂的对象。
    MVC允许你在不改变视图外观的情况下改变视图对用户输入的相应方式。例如,你可能希望改变视图对键盘的相应方式,或者希望使用弹出菜单而不是原来的命令键方式。MVC将相应机制封装在Controller对象中。存在着一个Controller类层次结构,使得可以方便的对原有Controller做适当改变而创建新的Controller。
   View使用Controller子类的实例来实现一个特定的相应策略。要实现不同的相应策略只要用不同的Controller实例替换即可。甚至可以再运行时刻通过改变View的Controller来改变View对用户输入的相应方式。例如,一个View可以被禁止接受任何输入,只要给它一个忽略输入事件的Controller。
    View - Controller关系是Strategy模式的一个例子。一个策略是一个表述算法的对象。当你想静态或动态地替换一个算法,或你有很多不同的算法,或算法中包含你想要封装的复杂的数据结构,这时策略模式是非常有用的。
    MVC还使用了其他的设计模式。如:用来指定视图缺省控制器的Factory Method和用来增加视图滚动的Decorator。但是MVC的主要关系还是有Observer、Composite和Strategy三个设计模式给提出的。
[/size][/size][/size][/size]
分享到:
评论

相关推荐

    MVC设计模式例子程序

    **MVC设计模式详解** MVC(Model-View-Controller)设计模式是一种广泛应用于软件开发,尤其是Web应用程序中的架构模式。它将应用程序分为三个主要组件:模型(Model)、视图(View)和控制器(Controller),以此...

    java中MVC设计模式

    Java 中 MVC 设计模式 MVC 设计模式是软件架构中的一种经典设计模式,广泛应用于 Java Web 开发中。MVC 模式将应用程序分为三个主要部分:Model(模型)、View(视图)和 Controller(控制器),每个部分都有其特定...

    mvc设计模式 详解

    mvc设计模式对于web应用的开发无疑是一种非常先进的设计思想,无论你选择哪种语言,无论应用多复杂,它都能为你理解分析应用模型时提供最基本的分析方法,为你构造产品提供清晰的设计框架,为你的软件工程提供规范的...

    MVC设计模式详解

    **MVC设计模式详解** **一、什么是MVC设计模式** MVC,即Model-View-Controller(模型-视图-控制器)设计模式,是一种在软件工程中广泛应用于构建用户界面的架构模式。它将应用程序的数据处理、业务逻辑与用户界面...

    MVC设计模式范例

    **MVC设计模式详解** **一、MVC模式概述** MVC(Model-View-Controller)设计模式是一种软件设计架构模式,广泛应用于Web应用开发,主要用于分离应用程序的业务逻辑、用户界面和数据处理。该模式将应用程序分为三...

    jsp的MVC设计模式

    总的来说,理解和掌握MVC设计模式对于任何Java Web开发者来说都是至关重要的,它能够帮助我们构建更加健壮、可维护的Web应用程序。通过学习“jsp的MVC设计模式”教程源码,你可以更深入地了解这一模式,并将其应用到...

    mvc设计模式项目

    **mvc设计模式项目** 在软件开发领域,MVC(Model-View-Controller)设计模式是一种广泛应用的架构模式,尤其在Web应用开发中。这个模式将应用程序的组件分为三个主要部分:模型(Model)、视图(View)和控制器...

    mvc设计模式和模板模式ppt

    从设计模式的角度来看,MVC实际上是一种复合模式,它融合了多种设计模式如合成模式、策略模式以及观察者模式等,以解决一系列复杂的设计问题。这种模式将应用程序分为三个主要部分: 1. **Model(模型)**:负责...

    MVC设计模式概念及优缺点

    ### MVC设计模式概念及优缺点 #### 一、MVC设计模式的概念 MVC(Model-View-Controller)设计模式是一种广泛应用于软件工程中的架构模式,尤其在Web开发领域非常流行。该模式的核心理念在于将应用程序划分为三个...

    mvc设计模式demo1

    **MVC设计模式详解及其在Android中的应用** MVC(Model-View-Controller)设计模式是一种广泛用于软件工程,特别是Web应用程序开发的经典架构模式。它将应用程序的不同组件划分为三个主要部分,以实现职责分离,...

    mvc设计模式demo

    **MVC设计模式详解及其在Android应用中的实践** **一、MVC设计模式介绍** MVC(Model-View-Controller)是一种广泛应用于软件工程,尤其是Web应用开发中的设计模式。它将应用程序分为三个核心组件:模型(Model)...

    JAVA WEB中MVC设计模式

    通过深入理解并熟练运用MVC设计模式,开发者能够构建出结构良好、易于扩展的Java Web应用程序。同时,配合Spring MVC这样的成熟框架,可以大大提高开发效率和产品质量。学习并掌握这些知识点,对于提升Java Web开发...

    MVC设计模式

    **MVC设计模式详解** **一、MVC模式概述** MVC(Model-View-Controller)设计模式是一种软件设计架构模式,广泛应用于Web应用程序开发,主要用于分离应用程序的业务逻辑、用户界面和数据处理。该模式将应用分为三...

    asp.net mvc 设计模式全部代码

    在这个"asp.net mvc 设计模式全部代码"压缩包中,你可能会找到一系列使用C#实现的设计模式示例,这些示例旨在帮助你理解和应用到实际的ASP.NET MVC项目中。 1. **单例模式(Singleton)**:保证一个类只有一个实例...

    MVC设计模式了解什么是mvc

    **正文** MVC(Model-View-Controller)设计模式是一...通过理解并运用MVC设计模式,开发者可以构建出更加灵活、高效且易于维护的软件系统。在开发过程中,不断优化这三个组件的交互,能够提升应用的性能和用户体验。

    java 设计模式 mvc模式 单例模式 代理 工厂 简单工厂

    在现代软件开发领域中,设计模式作为一整套为开发者提供针对特定问题解决方案的模板或最佳实践,其重要性不言而喻。尤其在Java这样面向对象的编程语言中,设计模式更是被广泛应用。本篇文章将对标题与描述中提到的几...

    JAVA面试 jdbc jaee mvc设计模式

    本文将深入探讨在Java面试中经常出现的一些核心知识点,包括JDBC、J2EE、MVC设计模式、Servlet、XML、线程以及面试技巧。 首先,JDBC(Java Database Connectivity)是Java与数据库交互的标准接口。它允许Java应用...

    MVC设计模式的简单例子

    **MVC设计模式详解及其在Tomcat中的应用** MVC(Model-View-Controller)设计模式是一种广泛应用在Web开发中的架构模式,它将应用程序的业务逻辑、数据模型和用户界面进行了分离,使得代码更加模块化,易于维护和...

    通过Java Swing看透MVC设计模式

    **MVC设计模式详解** MVC(Model-View-Controller)设计模式是一种广泛应用于软件开发,尤其是GUI(图形用户界面)设计的经典模式。它将软件组件分为三个主要部分:模型(Model)、视图(View)和控制器...

Global site tag (gtag.js) - Google Analytics