- 1、本文档共35页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ch19设计模式(DesignPatterns)概论
基本概念
基本要素
模式分类
实例;在面向对象的编程中,软件编程人员更加注重现有代码的重用性和可维护性。
设计模式使人们可以更加简单方便地重用成功的设计和体系结构。将已证实的技术表述成设计模式也会使新系统开发者更加容易理解其设计思路。
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)
解决方案(solution)
效果(consequences);模式名称(pattern name)
一个助记名,它用一两个词来描述模式的问题、解决方案和效果。命名一个新的模式增加了我们的设计词汇。设计模式允许我们在较高的抽象层次上进行设计。基于一个模式词汇表,我们自己以及同事之间就可以讨论模式并在编写文档时使用它们。模式名可以帮助我们思考,便于我们与其他人交流设计思想及设计结果。找到恰当的模式名也是我们设计模式编目工作的难点之一。;设计模式
——基本要素;设计模式
——基本要素;设计模式
——基本要素;设计模式
——模式分类;设计模式
——模式分类;设计模式
——模式分类;设计模式
——模式分类;设计模式
——实例:Singleton模式;要想保证一个类只有一个实例,需要做到:
必须能够实例化这个类
必须阻止其它的类来随意实例化这个类
有了这个实例以后,需要提供一个该实例的全局访问方法,这和该实例的保存位置有关。;设计模式
——实例:Singleton模式;结构
;设计模式
——实例:Singleton模式;Singleton模式优点:
对唯一实例的受控访问:因为Singleton类封装它的唯一实例,所以它可以严格地控制客户怎样以及何时访问它。
允许对操作和表示的精化: Singleton类可以有子类,而且用这个扩展类的实例来配置一个应用是很容易的。你可以用你所需要的类的实例在运行时刻配置应用。
比静态方法(类操作)更灵活:另一种封装单件功能的方式是使用静态方法。但是,使用静态方法需要考虑同步问题,也容易导致内存数据不一致的问题。;MVC概述
WEB应用的两种开发模式
MVC操作顺序
MVC优点
MVC的适用性
;视图;MVC模式最初使用SmallTalk开发,后来在Swing组件库中广泛应用。
该模式采用一个图形化对象并将其任务分解成三部分:
控制器:触发一个对组件的改变。
模型:提供修改、访问数据的方法。
视图:提供当前数据的直观显示。;设计模式
——实例:MVC模式;Model1的主要特点;设计模式
——实例:MVC模式;设计模式
——实例:MVC模式;设计模式
——实例:MVC模式;在一个典型的企业级应用中,经常需要用多种类型的接口来支持多种类型的用户。
比如,一个网上商店可能需要:
为网上顾客提供HTML前端,
为无线用户提供WML前端,
为系统管理员提供JFC/Swing GUI,
为供应商提供基于XML的Web service。;HTML
View;Model含有应用程序的功能核心,表示应用程序的状态,它不管View和Controller。
JavaBean就适合作为Model,可以用来设计应用程序的大部分业务逻辑,能与数据库或文件系统进行交互,负责维护应用程序的数据。
;MVC模型:View;MVC模型:Controller;在控制器被用户触发时,它将把变化传达给模型;
模型改变该数据并将新数据推给适当的视图
视图接收新数据并以新的图像或表格形式显示数据。;将核心数据的存取、数据表示和控制逻辑三者分离开来,可针对多种用户设计多个视图,以便共享同样的企??数据模型。
Web设计人员可以集中于使用JSP来开发UI表示数据,而代码开发人员可以使用Servlet编写执行任务的代码,这样有利于缩短开发周期。;Web页面需要根据用户在运行时提供的信息进行动态定制。
Web站点上的信息需要经常变动。
Web页面需要使用来自合作网站或别的商业数据库的信息。
需要开发的Web应用具有复杂的用户交互模型,或者需要支持多国语言、针对不同的用户需要有多种不同类型的视图。;设计模式
——实例:MVC模式;login.jsp
文档评论(0)