- 浏览: 62690 次
- 性别:
- 来自: 北京
文章分类
最新评论
本文将透过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包含三类对象。模型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]
发表评论
-
STRATEGY(策略)——对象行为型模式
2013-06-17 16:19 6841、意图 定义一系列的算法,把它们一个个封装起来,并且 ... -
STATE(状态)—— 对象行为型模式
2013-06-14 16:49 7831、意图 允许一个 ... -
OBSERVER(观察者)——对象行为型模式
2013-06-13 15:36 7041、意图 定义对象 ... -
MEDIATOR(中介者)——对象行为型模式
2013-06-09 16:17 6821、意图 用一个中 ... -
CHAIN OF RESPONSIBILITY(职责链) —— 对象行为型模式
2013-06-06 16:32 6481、意图 使多个对象都有机会处理请求,从而避免请求的发 ... -
PROXY(代理) —— 对象结构型模式
2013-06-05 11:24 7541、意图 为其他对 ... -
DECORATOR(装饰) -—— 对象机构型模式
2013-06-03 11:43 6981、意图 动态地给一个对象添加一些额外的职责。就增加功 ... -
COMPOSITE(组合) ---- 对象结构型模式
2013-05-31 15:12 7721、意图 将对象组 ... -
FACTORY METHOD(工厂方法) ---- 对象创建型模式
2013-05-28 11:43 7241、意图 定义一个用于创建对象的接口,让子类决定实例化 ... -
设计模式的三大分类解析
2013-05-24 14:48 848设计模式在功能上 ... -
TEMPLATE METHOD(模板方法)----- 类行为型模式
2013-04-07 11:27 7011、意图 定义一个 ... -
ADAPTER(适配器) --- 类对象结构型模式
2013-03-28 11:33 5951、意图 将一个类的接口转化成客户希望的另外一个接口。 ... -
BRIGE(桥接) ------ 对象结构型模式
2013-03-27 11:20 7401、意图 将抽象部 ... -
COMMAND(命令) ---- 对象行为型模式
2013-03-06 11:20 7251、意图 将一个请求封装为一个对象,从而使你可用不同的 ... -
VISITOR(访问者) ---- 对象行为型模式
2013-02-26 17:03 9131、意图 表示 ... -
Builder(生成器)---- 对象创建型模式
2013-02-25 15:54 6331、意图 将一个复杂对象的创建和它的表示分离,使得同样的 ... -
ABSTRACT FACTORY(抽象工厂)------ 对象创建型模式
2013-02-22 11:21 6831、意图 提供一个创建一系列相关或相互依赖对象的接口,而 ... -
Flyweight pattern(享元模式)
2013-02-20 14:45 7701. 概述 面向对象技术可以很好地解决系统一些灵活性或可扩展 ... -
Facade模式 --- 对象结构型模式
2013-02-19 17:03 7021、意图 为子系统中 ... -
23个设计模式的名字和意图
2013-02-19 15:41 7221、Abstract Factory:提供 ...
相关推荐
**MVC设计模式详解** MVC(Model-View-Controller)设计模式是一种广泛应用于软件开发,尤其是Web应用程序中的架构模式。它将应用程序分为三个主要组件:模型(Model)、视图(View)和控制器(Controller),以此...
Java 中 MVC 设计模式 MVC 设计模式是软件架构中的一种经典设计模式,广泛应用于 Java Web 开发中。MVC 模式将应用程序分为三个主要部分:Model(模型)、View(视图)和 Controller(控制器),每个部分都有其特定...
mvc设计模式对于web应用的开发无疑是一种非常先进的设计思想,无论你选择哪种语言,无论应用多复杂,它都能为你理解分析应用模型时提供最基本的分析方法,为你构造产品提供清晰的设计框架,为你的软件工程提供规范的...
**MVC设计模式详解** **一、什么是MVC设计模式** MVC,即Model-View-Controller(模型-视图-控制器)设计模式,是一种在软件工程中广泛应用于构建用户界面的架构模式。它将应用程序的数据处理、业务逻辑与用户界面...
**MVC设计模式详解** **一、MVC模式概述** MVC(Model-View-Controller)设计模式是一种软件设计架构模式,广泛应用于Web应用开发,主要用于分离应用程序的业务逻辑、用户界面和数据处理。该模式将应用程序分为三...
总的来说,理解和掌握MVC设计模式对于任何Java Web开发者来说都是至关重要的,它能够帮助我们构建更加健壮、可维护的Web应用程序。通过学习“jsp的MVC设计模式”教程源码,你可以更深入地了解这一模式,并将其应用到...
**mvc设计模式项目** 在软件开发领域,MVC(Model-View-Controller)设计模式是一种广泛应用的架构模式,尤其在Web应用开发中。这个模式将应用程序的组件分为三个主要部分:模型(Model)、视图(View)和控制器...
从设计模式的角度来看,MVC实际上是一种复合模式,它融合了多种设计模式如合成模式、策略模式以及观察者模式等,以解决一系列复杂的设计问题。这种模式将应用程序分为三个主要部分: 1. **Model(模型)**:负责...
### MVC设计模式概念及优缺点 #### 一、MVC设计模式的概念 MVC(Model-View-Controller)设计模式是一种广泛应用于软件工程中的架构模式,尤其在Web开发领域非常流行。该模式的核心理念在于将应用程序划分为三个...
**MVC设计模式详解及其在Android中的应用** MVC(Model-View-Controller)设计模式是一种广泛用于软件工程,特别是Web应用程序开发的经典架构模式。它将应用程序的不同组件划分为三个主要部分,以实现职责分离,...
**MVC设计模式详解及其在Android应用中的实践** **一、MVC设计模式介绍** MVC(Model-View-Controller)是一种广泛应用于软件工程,尤其是Web应用开发中的设计模式。它将应用程序分为三个核心组件:模型(Model)...
通过深入理解并熟练运用MVC设计模式,开发者能够构建出结构良好、易于扩展的Java Web应用程序。同时,配合Spring MVC这样的成熟框架,可以大大提高开发效率和产品质量。学习并掌握这些知识点,对于提升Java Web开发...
**MVC设计模式详解** **一、MVC模式概述** MVC(Model-View-Controller)设计模式是一种软件设计架构模式,广泛应用于Web应用程序开发,主要用于分离应用程序的业务逻辑、用户界面和数据处理。该模式将应用分为三...
在这个"asp.net mvc 设计模式全部代码"压缩包中,你可能会找到一系列使用C#实现的设计模式示例,这些示例旨在帮助你理解和应用到实际的ASP.NET MVC项目中。 1. **单例模式(Singleton)**:保证一个类只有一个实例...
**正文** MVC(Model-View-Controller)设计模式是一...通过理解并运用MVC设计模式,开发者可以构建出更加灵活、高效且易于维护的软件系统。在开发过程中,不断优化这三个组件的交互,能够提升应用的性能和用户体验。
以上设计模式在实际项目中有着广泛的应用,理解并熟练运用这些模式可以提高代码的可读性、可维护性和复用性。例如,MVC模式在Web应用开发中非常常见,单例模式常用于日志服务、数据库连接池等需要全局唯一的场景,...
本文将深入探讨在Java面试中经常出现的一些核心知识点,包括JDBC、J2EE、MVC设计模式、Servlet、XML、线程以及面试技巧。 首先,JDBC(Java Database Connectivity)是Java与数据库交互的标准接口。它允许Java应用...
**MVC设计模式详解及其在Tomcat中的应用** MVC(Model-View-Controller)设计模式是一种广泛应用在Web开发中的架构模式,它将应用程序的业务逻辑、数据模型和用户界面进行了分离,使得代码更加模块化,易于维护和...
**MVC设计模式详解** MVC(Model-View-Controller)设计模式是一种广泛应用于软件开发,尤其是GUI(图形用户界面)设计的经典模式。它将软件组件分为三个主要部分:模型(Model)、视图(View)和控制器...