- 1、本文档共55页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件复用中的设计模式 前言 不是解决任何问题都要从头做起,复用以前使用过的解决方案 真正复用面向对象很困难 小说家很少从头设计剧情 什么是设计模式 “每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次的使用该方案而不必做重复劳动” Christopher Alexander 四个基本要素 模式名字 助记名,模式词汇表,交流 问题 在何时使用模式,它解释了设计问题和问题存在的前因后果 解决方案 提供设计问题的抽象描述和怎样用元素组合解决问题 效果 描述了模式应用的效果及使用模式应权衡的问题,包括对系统的灵活性,扩充性或可移植性的影响.软件效果大多关注对时间和空间的衡量 Java中的设计模式 在Java的各个平台中,设计模式有很多精彩的应用,而且随着Java技术的不断发展,设计模式也在不断丰富。 MVC模式 MVC模式 所谓MVC模式,是指模型(Model)、视图(View)和控制(Control)相分离的设计方案。 模型(Model)是执行某些任务的代码 ,。模型只有纯粹的功能姓的接口,也就是一系列的公开方法。这些方法有的是取值方法,让系统其它部分可以得到模型端的内部状态参数;有的是改值方法,允许外部修改模型的内部状态。 MVC模式 视图决定模型以什么样的方式显示给用户。一个模型可以对应多个视图,那么对于视图而言,模型就是可重用的代码。一般来说,模型内部必须留下所有对应视图的记录,以便在模型的状态发生改变的时候,可以通知视图。模型的状态一旦发生改变,所有对应的视图都能够得到更新。 MVC模式 控制是和视图联合使用的。用户在与视图发生交互的时候,是通过控制器来操纵模型,从而向模型传递数据、更新模型的状态。 J2SE中一些复杂的显示控件(如表格、列表、树等),都使用了这种模式,从而使得设计结构非常清晰而且灵活。当然,也有人提出,MVC模式不应当被称为“设计模式”,而应当属于“架构模式”。它可以看作若干个设计模式的组合,并且在不同的应用环境中衍生出了其它的一些设计模式。但是在各种讨论中,MVC模式还是常常被当作设计模式。 J2EE与设计模式 J2EE属于一种框架软件。 什么是框架软件?它不同于以前接触的Java API等,那些API属于Toolkit(工具箱)。而J2EE不再被动地被使用、被调用,而是深刻地介入到一个领域中去。 J2EE设计的目的是将企业计算应用领域中不变的东西先定义好,比如整体结构和一些主要职责(如数据库操作、事务跟踪和安全等),剩余的就是变化的东西,即针对这个领域中具体应用所产生的不同的变化需求,而这些变化的东西就是J2EE程序员所要做的。 设计模式和J2EE在思想和动机上是一脉相承的。只不过设计模式更抽象,几乎可以用于任何应用;J2EE则是适合企业计算应用的框架软件,而设计模式是它的重要的理论基础之一。 在J2EE的框架下,一些应用级的设计模式 Apache Struts是最流行的架构方案之一。它实现了MVC模式的概念,并将这些概念映射到Web应用程序的构件和概念中。Struts这个名字来源于在建筑和旧式飞机中使用的支持金属架,其目的是帮助开发人员减少在运用MVC设计模型开发Web应用的时间。 23种设计模式 Adapter:将一个类的接口转换成客户希望的另一个接口,使得不兼容的类可以一起工作 Bridge:将抽象部分与它的实现部分分离,使他们可以独立的变化。 Builder:将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 Chain of Responsibility:为解除请求的发送者和接受者之间的耦合,而使多个对象都有机会处理这个请求。将使对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它。 Command: 将一个请求封装为一个对象,从而使你可以使用不同的请求对客户进行参数化,对请求排队或者记录请求 Decorator: 动态的给一个对象添加一些额外的职责。就扩展功能而言,其比生成子类方式更为灵活。 Facade:为子系统中的一组接口提供一个一致的界面,其定义了一个高层接口,使子系统使用更加容易。 Factory Method: 定义一个用于创建对象的接口,让子类决定将那个类实例化,其使一个类的实例化延迟到了其子类。 Flyweight: 运用共享技术有效的支持大量细力度的对象。 Interpreter:给定一个语言,定义他的文法的一种表示,并定义一个解释器,改解释器使用改表示来解释语言中的句子 Iterator:提供一种方法顺序访问一个聚合对象中各个元素,而又不需要暴露该对象的内部表示 Mediator:用一个中介对象来封装一系列的对象交互。中介者使各对象不
您可能关注的文档
- 化学工程师职业道德规范学习.pdf
- 怎样打造一款快速增长的互联网产品?.pdf
- 只读类光盘CD-ROM常规检测参数资料.pdf
- VF - 表记录相关操作.ppt
- 网络新媒体技术对传统平面广告影响.pdf
- 第三章 06-电子商务安全-新版.ppt
- 0827-01食品科学及工程专业标准.pdf
- 20120730--照相机--三星照相机WB850F拍照时提示DCF Full Error怎样解决?.pdf
- SQL_第08节_数据检索.ppt
- 河南省环境 2013年度河南省环境监察人员远程培训正式考试题(九套已答试题)讲述.pdf
- 2025年金肯职业技术学院单招职业适应性测试题库带答案.docx
- 2025年钦州幼儿师范高等专科学校单招综合素质考试题库完美版.docx
- 2025年钟山职业技术学院单招职业适应性考试题库参考答案.docx
- 2025年金华职业技术学院单招职业技能测试题库附答案.docx
- 2025年闽南理工学院单招职业技能测试题库审定版.docx
- 2025年闽南理工学院单招综合素质考试题库审定版.docx
- 2025年闽南理工学院单招职业倾向性考试题库汇编.docx
- 2025年闽南理工学院单招职业倾向性考试题库推荐.docx
- 2025年闽北职业技术学院单招综合素质考试题库1套.docx
- 2025年长沙轨道交通职业学院单招职业技能考试题库一套.docx
文档评论(0)