`

从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模式 单例模式 代理 工厂 简单工厂

    以上设计模式在实际项目中有着广泛的应用,理解并熟练运用这些模式可以提高代码的可读性、可维护性和复用性。例如,MVC模式在Web应用开发中非常常见,单例模式常用于日志服务、数据库连接池等需要全局唯一的场景,...

    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