首页 华南理工大学UML课件—14.设计模式

华南理工大学UML课件—14.设计模式

举报
开通vip

华南理工大学UML课件—14.设计模式null软件需求分析与建模 -设计模式软件需求分析与建模 -设计模式主讲:苏锦钿 ( SuJD@scut.edu.cn ) 单位:计算机科学与工程学院 时间:*引言 基本概念 基本要素 模式分类 工厂模式 单例模式 策略模式 MVC模式引言设计模式的起源设计模式的起源模式的研究起源于建筑工程设计大师Christopher Alexander的关于城市规划和建筑设计的著作(《建筑的永恒之道》). 在面向对象的编程中使用模式化方法研究的开创性著作《设计模式-可复用面向对象软件的基础》 这本书的四位作者也通常被称...

华南理工大学UML课件—14.设计模式
null软件需求分析与建模 -设计模式软件需求分析与建模 -设计模式主讲:苏锦钿 ( SuJD@scut.edu.cn ) 单位:计算机科学与工程学院 时间:*引言 基本概念 基本要素 模式分类 工厂模式 单例模式 策略模式 MVC模式引言设计模式的起源设计模式的起源模式的研究起源于建筑工程设计大师Christopher Alexander的关于城市规划和建筑设计的著作(《建筑的永恒之道》). 在面向对象的编程中使用模式化方法研究的开创性著作《设计模式-可复用面向对象软件的基础》 这本书的四位作者也通常被称为“四人帮”。建议阅读以下三本书建议阅读以下三本书1.设计模式-可复用面向对象软件的基础 2.Java与模式,作者:阎宏。 3.Inside VCL,作者:李维。设计模式-基本概念在面向对象的编程中,软件编程人员更加注重现有代码的重用性和可维护性。 设计模式使人们可以更加简单方便地重用成功的设计和体系结构。将已证实的技术表述成设计模式也会使新系统开发者更加容易理解其设计思路。 A pattern is an idea that has been useful in one practical context and will probably be useful in others. --Martin Fowler设计模式-基本概念设计模式-基本要素一般而言,一个模式有四个基本要素 模式名称(pattern name) 问题(problem) 解决 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 (solution) 效果(consequences)设计模式-基本要素设计模式-基本要素模式名称(pattern name) 一个助记名,它用一两个词来描述模式的问题、解决方案和效果。设计模式允许我们在较高的抽象层次上进行设计。模式名可以帮助我们思考,便于我们与其他人交流设计思想及设计结果。找到恰当的模式名也是我们设计模式编目工作的难点之一。设计模式-基本要素设计模式-基本要素问题(problem) 描述了应该在何时使用模式。它解释了设计问题和问题存在的前因后果,它可能描述了特定的设计问题,如怎样用对象表示算法等。也可能描述了导致不灵活设计的类或对象结构。有时候,问题部分会包括使用模式必须满足的一系列先决条件。设计模式-基本要素设计模式-基本要素解决方案(solution) 描述了设计的组成成分,它们之间的相互关系及各自的职责和协作方式。因为模式就像一个模板,可应用于多种不同场合,所以解决方案并不描述一个特定而具体的设计或实现,而是提供设计问题的抽象描述和怎样用一个具有一般意义的元素组合(类或对象组合)来解决这个问题。设计模式-基本要素设计模式-基本要素效果(consequences) 描述了模式应用的效果及使用模式应权衡的问题。尽管我们描述设计决策时,并不总提到模式效果,但它们对于 评价 LEC评价法下载LEC评价法下载评价量规免费下载学院评价表文档下载学院评价表文档下载 设计选择和理解使用模式的代价及好处具有重要意义。软件效果大多关注对时间和空间的衡量,它们也表述了语言和实现问题。因为复用是面向对象设计的要素之一,所以模式效果包括它对系统的灵活性、扩充性或可移植性的影响,显式地列出这些效果对理解和评价这些模式很有帮助。设计模式-基本要素设计模式-模式分类创建型模式 抽象的实例化过程 结构型模式 如何组合类和对象以获得更大的结构 行为型模式 涉及到算法和对象间职责的分配设计模式-模式分类设计模式的分类设计模式的分类设计模式的分类及其相互间关系设计模式的分类及其相互间关系1、创建型设计模式 创建型模式隐藏了对象创建的具体细节,使程序代码不依赖具体的对象。 创建型类的模式有工厂方法(Factory Method)模式; 创建型对象模式包括抽象工厂(Abstract Factory)、建造(Builder)、原型(Prototype)、单例 (Singleton)四种模式。null2、结构型设计模式 结构型模式描述类和对象之间通过组织形成新的结构,以实现新的功能。 结构型的类模式采用继承机制来组合类,如适配器(Adapter)类模式; 结构型的对象模式则描述了对象的组装方式,如适配器(Adapter)对象模式、桥接(Bridge)模式、组合(Composite)模式、装饰(Decorator)模式、外观(Facade)模式、享元(Flyweight)模式、代理(Proxy)模式等。null3、行为型设计模式 行为型设计模式描述算法以及对象之间的任务(职责)分配及它们之间的通讯模式。 行为型的类模式用继承方法完成,有模板方法模式和解释器模式; 行为型的对象模式使用对象复合方法而不是继承,它描述一组对象怎样协作完成单个对象所无法完成的任务, 如职责链(Chain ofReponsibility)模式、命令(Command)模式、迭代器(Iterator)模式、中介者(Mediator)模式、备忘录(Memento)模式、观察者(Observer)模式、状态(State)模式、策略(Strategy)模式、访问者(Visitor)模式等。模式的另一种分类模式的另一种分类Architectural Patterns 表达了软件系统的基本结构组织形式或者结构方案 它包含一组预定义的子系统, 规定 关于下班后关闭电源的规定党章中关于入党时间的规定公务员考核规定下载规定办法文件下载宁波关于闷顶的规定 了这些子系统的责任,同时还提供了用于组织和管理这些子系统的 规则 编码规则下载淘宝规则下载天猫规则下载麻将竞赛规则pdf麻将竞赛规则pdf 和向导 Design Patterns 为软件系统的子系统、组件或者组件之间的关系提供一个精炼之后的解决方案 它描述了在特定环境下,用于解决通用软件设计问题的组件以及这些组件相互通信时的可重现结构 Idioms 是一个与编程语言相关的低级模式 它描述了如何实现组件的某些功能,或者利用编程语言的特性来实现组件内部要素之间的通信功能设计模式的指导原则设计模式的指导原则重用(reuse):是目标 两种重要的重用手段 Inheritance & composition/aggregation 接口与实现分离 接口保持不变,分离带来灵活性 多态性(polymorphism) Decouple 降低复杂性 工厂模式的几种类型工厂模式的几种类型工厂模式专门负责将大量有共同接口的类实例化。工厂模式可以动态地决定将哪一个类实例化,不必事先知道每次要实例化哪一个类。工厂模式具有以下几种类型: 1.简单工厂:又称静态工厂方法模式 2.工厂方法:又称多态性工厂模式 3.抽象工厂模式:又称工具箱模式(Toolkit)简单工厂模式简单工厂模式简单工厂模式是类的创建模式简单工厂模式是有一个工厂类根据传入的参量决定创建出哪一种产品类的实例。情况1:客户端需要创建各种不同的对象情况1:客户端需要创建各种不同的对象以类Sample为例, 假设要创建Sample的实例对象:  Sample sample=new Sample(); 有时候可能要创建不同的Sample对象,那么可以用: If choice = 1 then sample = new Sample1 Else if chose = 2 then sample = new Sample2 Else sample = new Sample3情况2:创建时包含大量的初始化工作情况2:创建时包含大量的初始化工作如果创建sample实例时包含了大量的初始化工作,例如赋值、查询数据库、安全审核、日志记录等,那么对象的构造函数中就包含了大量的额外工作。 上述两种情况都是将对象的创建与使用混合在一起,容易使得代码变得非常复杂。 如何解决这个问题呢?null要解决这个问题,应该尽量将创建实例的工作与使用实例的工作分开,也就是说,让客户端所做的各种判断或者创建实例所需要的大量初始化工作与对象本身的构造分离开。 角色与结构角色与结构工厂类(Creator)角色:该角色是工厂方法模式的核心,含有与应用紧密相关的商业逻辑。工厂类在客户端的直接调用下创建产品对象,它往往由一个具体类实现。 抽象产品(Product)角色:担任这个角色的类是工厂方法模式所创建的对象的父类,或它们共同拥有的接口。抽象产品角色可以用接口或者抽象类实现。 具体产品(Concrete Product)角色:工厂方法模式所创建的任何对象都是这个角色的实例,具体产品角色由一个具体类实现。实现实现Creator 类的源代码 public class Creator {/** * 静态工厂方法 */ public static Product factory() { return new ConcreteProduct(); } }例子例子//java中的简单工厂模式如下例   /**   手机接口  **/   public interface Mobile{   public void call();   }   /**   诺基亚手机   **/   public class Nokia implements Mobile{   public void call(){   System.out.println("Nokia produced ...");   }   }   /**  摩托罗拉手机   **/   public class Motorola implements Mobile{   public void call(){   System.out.println("Motorola produced ...");   }   } null/**   简单工厂模式中的核心部分:工厂类   **/   public class SimpleFactory{   public static Mobile createMobile(String mobileName){   if(mobileName.equals("NOKIA")){   new Nokia();   }else if(mobileName.equals("MOTOROLA")){    new Motorola();   }else{    throw new Exception("还不支持该种类型的手机生产!");   }   }   } null/** 客户端测试   **/   public class Client{   public static void main(String args[]){   Mobile mobile = SimpleFactory.createMobile("NOKIA") ;   mobile.cell() ; //创建Nokia ;   mobile = SimpleFactory.createMobile("MOTOROLA") ; //接口回调   mobile.cell() ; //创建Motorola ;   }   } null对前面的Sample来说,可以建立一个专门生产Sample实例的工厂: public class Factory{ public static Sample creator(int which){   if (which==1)   return new SampleA();   else if (which==2)   return new SampleB();  }  } 如果要实例化Sample时,就可以就使用 Sample sampleA=Factory.creator(1); 模式优点模式优点工厂类是整个模式的关键.包含了必要的逻辑判断,根据外界给定的信息,决定究竟应该创建哪个具体类的对象.通过使用工厂类,外界可以从直接创建具体产品对象的尴尬局面摆脱出来,仅仅需要负责“消费”对象就可以了。而不必管这些对象究竟如何创建及如何组织的.明确了各自的职责和权利,有利于整个软件体系结构的优化。 简单工厂模式通过这种做法实现了对责任的分割。 模式的缺点模式的缺点 由于工厂类集中了所有实例的创建逻辑,违反了高内聚责任分配原则,将全部创建逻辑集中到了一个工厂类中;它所能创建的类只能是事先考虑到的,如果需要添加新的类,则就需要改变工厂类了。   当系统中的具体产品类不断增多时候,可能会出现要求工厂类根据不同条件创建不同实例的需求.这种对条件的判断和对具体产品类型的判断交错在一起,很难避免模块功能的蔓延,对系统的维护和扩展非常不利; 观察观察功能的扩展体现在引进新的产品上。“开–闭”原则要求系统允许当新的产品加入系统中,而无需对现有代码进行修改。 这一点对于产品的消费角色是成立的,而对于工厂角色是不成立的。观察观察对于产品消费角色来说,任何时候需要某种产品,只需向工厂角色请求即可。而工厂角色在接到请求后,会自行判断创建和提供哪一个产品。所以,产品消费角色无需知道它得到的是哪一个产品;换言之,产品消费角色无需修改就可以接纳新的产品。 对于工厂角色来说,增加新的产品是一个痛苦的过程。工厂角色必须知道每一种产品,如何创建它们,以及何时向客户端提供它们。换言之,接纳新的产品意味着修改这个工厂角色的源代码。 简单工厂角色只在有限的程度上支持“开–闭”原则。null在JAVA中的应用在JAVA中的应用1.java.text.DateFormat类中的getDateIntance方法. 2.SAX2库中的XMLReaderFactory等. 3.大部分的单例模式工厂方法模式工厂方法模式工厂方法模式是类的创建模式,又叫做虚拟构造子(Virtual Constructor)模式或者多态性工厂(Polymorphic Factory)模式。 工厂方法模式的用意是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中。简单工厂模式的优缺点简单工厂模式的优缺点在简单工厂模式中,一个工厂类处于对产品类实例化的中心位置上,它知道每一个产品,它决定哪一个产品类应当被实例化。这个模式的优点是允许客户端相对独立于产品创建的过程,并且在系统引入新产品的时候无需修改客户端,也就是说,它在某种程度上支持“开-闭”原则。 这个模式的缺点是对“开-闭”原则的支持不够,因为如果有新的产品加入到系统中去,就需要修改工厂类,将必要的逻辑加入到工厂类中。工厂方法模式的引进工厂方法模式工厂方法模式工厂方法模式是简单工厂模式的进一步抽象和推广。由于使用了多态性,工厂方法模式保持了简单工厂模式的优点,而且克服了它的缺点。工厂方法模式的简略类图工厂方法模式的简略类图工厂方法模式工厂方法模式在工厂方法模式中,核心的工厂类不再负责所有的产品的创建,而是将具体创建的工作交给子类去做。这个核心类则摇身一变,成为了一个抽象工厂角色,仅负责给出具体工厂子类必须实现的接口,而不接触哪一个产品类应当被实例化这种细节。 这种进一步抽象化的结果,使这种工厂方法模式可以用来允许系统在不修改具体工厂角色的情况下引进新的产品工厂方法模式的结构工厂方法模式的结构结构与角色结构与角色抽象工厂(Creator)角色:担任这个角色的是工厂方法模式的核心,它是与应用程序无关的。任何在模式中创建对象的工厂类必须实现这个接口。在上面的系统中这个角色由接口Creator 扮演;在实际的系统中,这个角色也常常使用抽象类实现。结构与角色结构与角色具体工厂(Concrete Creator)角色:担任这个角色的是实现了抽象工厂接口的具体类。具体工厂角色含有与应用密切相关的逻辑,并且受到应用程序的调用以创建产品对象。 在本系统中给出了两个这样的角色,也就是具体Java 类ConcreteCreator1 和ConcreteCreator2。结构与角色结构与角色抽象产品(Product)角色:工厂方法模式所创建的对象的超类型,也就是产品对象的共同父类或共同拥有的接口。在本系统中,这个角色由接口Product 扮演;在实际的系统中,这个角色也常常使用抽象类实现。结构与角色结构与角色具体产品(Concrete Product)角色:这个角色实现了抽象产品角色所声明的接口。工厂方法模式所创建的每一个对象都是某个具体产品角色的实例。 在本系统中,这个角色由具体类CocnreteProduct1 和oncreteProduct2 扮演,它们都实现了接口Product。工厂方法模式的活动序列图工厂方法模式的活动序列图Client 对象的活动可以分成两部分。 (1)客户端创建ConcreteCreator1 对象。这时客户端所持有变量的静态类型是Creator,而实际类型是ConcreteCreator1。然后,客户端调用ConcreteCreator1 对象的工厂方法factory(),接着后者调用ConcreteProduct1 的构造子创建出产品对象。如下面的时序图所示。工厂方法模式的活动序列图工厂方法模式的活动序列图比较比较工厂方法模式和简单工厂模式在结构上的不同是很明显的。工厂方法模式的核心是一个抽象工厂类,而简单工厂模式把核心放在一个具体类上。工厂方法模式可以允许很多具体工厂类从抽象工厂类中将创建行为继承下来,从而可以成为多个简单工厂模式的综合,进而推广了简单工厂模式。比较比较工厂方法模式退化后可以变得很像简单工厂模式。设想如果非常确定一个系统只需要一个具体工厂类,那么就不妨把抽象工厂类合并到具体的工厂类中去。由于反正只有一个具体工厂类,所以不妨将工厂方法改成为静态方法,这时候就得到了简单工厂模式。观察观察与简单工厂模式中的情形一样的是,ConcreteCreator 的factory() 方法返还的数据类型是一个抽象类型Product,而不是哪一个具体产品类型,而客户端也不必知道所得到的产品的真实类型。这种多态性设计将工厂类选择创建哪一个产品对象、如何创建这个对象的细节完全封装在具体工厂类内部。 工厂方法模式之所以有一个别名叫多态性工厂模式,显然是因为具体工厂类都有共同的接口,或者都有共同的抽象父类。观察观察如果系统需要加入一个新的产品,那么所需要的就是向系统中加入一个这个产品类以及它所对应的工厂类。没有必要修改客户端,也没有必要修改抽象工厂角色或者其他已有的具体工厂角色。对于增加新的产品类而言,这个系统完全支持“开-闭”原则。例例在JAVA语言的API中的应用 在JAVA语言的API中的应用 1.java.util.Collection接口中的iterator()方法,返回的是一个Iterator类型的对象. 2.List接口中的iterator()方法和listIterator()方法. 3.Com架构中的IClassFactory和CFactory类. 4.EJB中的Home接口. 5.JMS中的TopicConnectionFactory等.抽象工厂(Abstract Factory)模式抽象工厂(Abstract Factory)模式抽象工厂模式是所有形态的工厂模式中最为抽象和最具一般性的一种形态。抽象工厂模式简略类图抽象工厂模式简略类图说明说明左边的等级结构代表工厂等级结构,右边的两个等级结构分别代表两个不同的产品的等级结构。 抽象工厂模式可以向客户端提供一个接口,使得客户端在不必指定产品的具体类型的情况下,创建多个产品族中的产品对象。这就是抽象工厂模式的用意。抽象工厂模式抽象工厂模式抽象工厂模式抽象工厂模式抽象工厂模式与工厂方法模式的最大区别就在于,工厂方法模式针对的是一个产品等级结构;而抽象工厂模式则需要面对多个产品等级结构产品族产品族产品族,是指位于不同产品等级结构中,功能相关联的产品组成的家族。比如在下图中,箭头所指就是三个功能相关联的产品,它们位于三个不同的等级结构中的相同位置上,组成一个产品族。产品族产品族抽象工厂模式抽象工厂模式如果采用工厂方法模式,就势必要使用三个独立的工厂等级结构来对付这三个产品等级结构。由于这三个产品等级结构的相似性,会导致三个平行的工厂等级结构。随着产品等级结构的数目增加,工厂方法模式所给出的工厂等级结构的数目也会随之增加。抽象工厂模式设计抽象工厂模式设计结构与角色结构与角色抽象工厂(AbstractFactory)角色:担任这个角色的是工厂方法模式的核心,它是 与应用系统的商业逻辑无关的。通常使用Java 接口或者抽象Java 类实现,而所有的具体工厂类必须实现这个Java 接口或继承这个抽象Java 类。结构与角色结构与角色具体工厂类(Concrete Factory)角色:这个角色直接在客户端的调用下创建产品的实例。这个角色含有选择合适的产品对象的逻辑,而这个逻辑是与应用系统的商业逻辑紧密相关的。通常使用具体Java 类实现这个角色。结构与角色结构与角色抽象产品(Abstract Product)角色:担任这个角色的类是工厂方法模式所创建的对象的父类,或它们共同拥有的接口。通常使用Java 接口或者抽象Java 类实现这一角色。结构与角色结构与角色具体产品(Concrete Product)角色:抽象工厂模式所创建的任何产品对象都是某一个具体产品类的实例。这是客户端最终需要的东西,其内部一定充满了应用系统的商业逻辑。通常使用具体Java 类实现这个角色。抽象工厂模式的起源抽象工厂模式的起源策略模式(Strategy) 策略模式(Strategy) 将一组算法中的每个算法封装到具有共同接口的独立类中,使得它们可以相互替换。 1.使用策略模式的时机 多个类之间的区别仅在于它们的行为,使用策略模 式可以动态地选择一种行为。 一个系统需要动态地在几种算法中选择一种。 一个系统的算法使用的数据不可以让客户端知道。 避免使用难以维护的多重条件选择语句,体现面向 对象设计的概念。null策略模式的结构策略模式涉及到三个角色: 语境(Context)角色:持有策略类Strategy的引用。 抽象策略(Strategy)角色:这是一个接口或抽象类。 具体策略(ConcreteStrategy)角色:以Strategy接口实现某个具体算法。实例分析实例分析例子:在一个贩卖各种书籍的电子商务网站中,针对不同的书有不同的折扣. 1.有些书不提供折扣; 2.有些书有一个固定折扣额; 3.有些书提供百分比折扣; 实例分析实例分析策略模式的优点和缺点策略模式的优点和缺点策略模式的优点有: 策略模式提供了管理相关的算法族的办法。避免重复 的代码。 策略模式提供了可以替换继承关系的办法。使其不可 能动态改变算法或行为。 使用策略模式可以避免使用多重条件转移语句。 策略模式的缺点有: 客户端必须知道所有的策略类,并自行决定使用哪一 个策略类。 策略模式造成很多的策略类。典型的应用典型的应用1.AWT中的LayoutManger中的各种GUI构件的排列方式:BorderLayer,FlowLayout, GridLayout,GridBayLayout等 2.例如酒店客房的费用折扣计算 3.常见的排序,例如二元排序,冒泡排序,堆栈排序,快速排序等.设计模式-MVC模式MVC概述 WEB应用的两种开发模式 MVC操作顺序 MVC优点 MVC的适用性 设计模式-MVC模式设计模式-实例:MVC模式MVC概述设计模式-实例:MVC模式设计模式-实例:MVC模式MVC模式最初使用SmallTalk开发,后来在Swing组件库中广泛应用。 该模式采用一个图形化对象并将其任务分解成三部分: 控制器:触发一个对组件的改变。 模型:提供修改、访问数据的方法。 视图:提供当前数据的直观显示。MVC概述设计模式-实例:MVC模式设计模式-实例:MVC模式JSP + JavaBean设计模式-实例:MVC模式设计模式-实例:MVC模式Model1的主要特点表现层用HTML或JSP。 JSP文件还负责所有的业务和处理逻辑 JSP直接用代码访问数据或JSP通过JavaBean存取数据。 以页面为中心,应用程序的业务逻辑和程序流程都在页面中出现。 JSP要跳转到别的页面,通过超级链接或Form表单的action实现。设计模式-实例:MVC模式设计模式-实例:MVC模式JSP不仅负责表示逻辑,还负责控制逻辑 大型项目中如果采取此方式,每个开发小组必须了解其它小组开发的所有页面的详细信息,否则对页面的修改将会破坏应用程序的流程。 当输出设备不同时(比如股票信息输出到显示器、手机、PDA上),需要采用不同的输出 格式 pdf格式笔记格式下载页码格式下载公文格式下载简报格式下载 (即不同的视图),那么用此方式JSP不仅要判定设备的类型,而且要为不同类型的设备提供正确的显示格式。Model1的缺点设计模式-实例:MVC模式设计模式-实例:MVC模式JSP + JavaBean +Servlet设计模式-实例:MVC模式nullMVC模型 在一个典型的J2EE Web应用中,MVC设计模式包括三个部分: 模型(Model): 用于封装数据,一般是关系数据库或EJB。 视图(View): 数据的表现组件,通常就是JSP页面,也可以是GUI,可以有多个。 控制器(Controller): 接受用户动作,负责统一管理。一般是Servlet。null在一个典型的企业级应用中,经常需要用多种类型的接口来支持多种类型的用户。 比如,一个网上商店可能需要: 为网上顾客提供HTML前端, 为无线用户提供WML前端, 为系统管理员提供JFC/Swing GUI, 为供应商提供基于XML的Web service。MVC模型nullMVC模式-ModelModel含有应用程序的功能核心,表示应用程序的状态,它不管View和Controller。 JavaBean就适合作为Model,可以用来设计应用程序的大部分业务逻辑,能与数据库或文件系统进行交互,负责维护应用程序的数据。MVC模型:ModelMVC模式-ModelMVC模式-ViewMVC模型:ViewView把应用程序的数据通过界面展示给用户。 View可以读取Model的数据,但不可修改。 当用户修改Model数据时,会通知View,以便用户看到最新的数据信息。 JSP用于实现此目的,开发者不用知道也不必去关心数据库发生了什么变化或者业务逻辑的详细情况。 注意:JSP中应尽可能少地使用Java代码。MVC模式-ViewMVC模式-ControllerMVC模型:Controller控制器的作用是处理请求、创建JavaBean或创建供JSP使用的对象。通常,控制器还决定把用户请求转交给哪一个界面组件(View)。 用于对用户的输入进行响应。 它创建Model并提供输入。 Servlet可同时兼有Java和HTML代码,可以接收来自客户端的HTTP请求,根据此请求决定创建哪些必要的JavaBean,并能把Model的数据修改通知View。MVC模式-ControllerMVC模式-操作顺序在控制器被用户触发时,它将把变化传达给模型; 模型改变该数据并将新数据推给适当的视图 视图接收新数据并以新的图像或表格形式显示数据。MVC操作顺序MVC模式-操作顺序MVC模式-优点将核心数据的存取、数据表示和控制逻辑三者分离开来,可针对多种用户设计多个视图,以便共享同样的企业数据模型。 Web设计人员可以集中于使用JSP来开发UI表示数据,而代码开发人员可以使用Servlet编写执行任务的代码,这样有利于缩短开发周期。MVC的优点MVC模式-优点MVC模式-适用性Web页面需要根据用户在运行时提供的信息进行动态定制。 Web站点上的信息需要经常变动。 Web页面需要使用来自合作网站或别的商业数据库的信息。 需要开发的Web应用具有复杂的用户交互模型,或者需要支持多国语言、针对不同的用户需要有多种不同类型的视图。MVC的适用性MVC模式-适用性例子用MVC模式实现用户登录验证 步骤: 1.需求分析 2.模型选择 3.设计数据库 4.配置数据源 5.编码实现 例子nullnull基于Struts基于StrutsStrutsController /ModuleViewnullClick to edit company slogan .www.themegallery.com
本文档为【华南理工大学UML课件—14.设计模式】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_531634
暂无简介~
格式:ppt
大小:806KB
软件:PowerPoint
页数:0
分类:工学
上传时间:2011-05-29
浏览量:24