《软件设计模式(Java版)》课件 第4、5章 结构型模式(上、下).pptxVIP

《软件设计模式(Java版)》课件 第4、5章 结构型模式(上、下).pptx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

内容简介

·本章教学目标:

了解结构型模式的特点与分类;

理解代理模式、适配器模式、桥接模式的定义与特点;

掌握代理模式、适配器模式、桥接模式的结构与实现;

学会使用这三种设计模式开发应用程序;

明白这三种设计模式的扩展应用。

·本章价值引领:

用代理模式实例提升学生为社会主义新农村建设尽一份力的责任感;

用适配器模式实例说明创新精神对实现科技强国的重要性;

用桥接模式实例说明加强品牌建设对扩大内需和提升产品国际竞争力的作用。

软件设计模式(Java版)、作者:程细柱;

4.1结构型模式概述

·结构型模式描述如何将类或对象按某种布局组成更大的结构。它分为类结构型模式和对象结构型模式,前者采用继承机制来组织接口和类,后者采用组合或聚合来组织对象。由于组合关系或聚合关系比继承关系耦合度低,满足“合成复用原则”,所以对象结构型模式比类结构型模式具有更大的灵活性。

·结构型模式分为以下7种:

(1)代理(Proxy)模式:为某对象提供一种代理以控制对该对象的访问。即客户端通过代理间接地访问该对象,从而限制、增强或修改该对象的一些特性。

(2)适配器(Adapter)模式:将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。

(3)桥接(Bridge)模式:将抽象与实现分离,使他们可以独立的变化。它是用组合关系代替继承关系来实现,从而降低了抽象和实现这2个可变维度的耦合度。;

4.1结构型模式概述(续)

(4)装饰(Decorator)模式:动态的给对象增加一些职责,即增加其额外的功能。

(5)外观(Facade)模式:为多个复杂的子系统提供一个一致的接口,使这些子系统更加容易被访问。

(6)享元(Flyweight)模式:运用共享技术来有效地支持大量细粒度对象的复用。

(7)组合(Composite)模式:将对象组合成树状层次结构,使用户对单个对象和组合对象具有一致的访问性。

·以上7种结构型模式,除了适配器模式分为类结构型模式和对象结构型模式2种,其他的全部属于对象结构型模式。

软件设计模式(Java版)(ISDN:9787564740634)、作者:程细柱???民邮电出版社();

4.2代理(Proxy)模式

·4.2.1模式的定义与特点

定义:由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介。

优点:1)代理模式在客户端与目标对象之间起到一个中介作用

和保护目标对象的作用;2)代理对象可以扩展目标对象的功能;3)

代理模式能将客户端与目标对象分离,在一定程度上降低了系统的耦合度。

缺点:1)在客户端和目标对象增加一个代理对象,会造成请求

处理速度变慢;2)增加了系统的复杂度。;

4.2代理(Proxy)模式(续)

·4.2.2模式的结构与实现

1.模式的结构

代理模式的主要角色有:

(1)抽象主题(Subject)类:通过接口或抽象类声明真实主题和代理对象实现的业务方法。

(2)真实主题(RealSubject)类:实现了抽象主题中的具体业务,是代理对象所代表的真实对象,是我们最终要引用的对象。

(3)代理(Proxy)类:提供了与真实主题相同的接口,其内部含有对真实主题的引用,它可以访问或控制或扩展真实主题的功能。

其结构图如下:;

Subject

+Request():

《代理》Proxy

-realSubject:RealSubject+preRequest():void

+Request():void

+postRequest():void;

·4.2.3模式的应用实例

【例4.1】韶关“天街e角”商

店是婺源特产公司的代理商,用

代理模式实现。

分析:Specialty(特产公司)是抽象主题,WySpecialty(婺源特产公司)是真实主题,经营许多婺源特产,韶关“天街e角”的SgProxy代理类,右边是其结构图:

注:程序代码见附件。;

·4.2.3模式的应用

实例

【例4.1】韶关

“天街e角”商店是

婺源特产公司的代理商,用代理模式实现。;

4.2代理(Proxy)模式(续)

·4.2.4模式的应用场景

1)远程代理,这种方式通常是为了隐藏目标对象存在于不同地址空间的事实,方便客户端访问。例如用户申请某些网盘空间时,会在用户的文件系统中建立一个虚拟的硬盘,用户访问它实际访问的是网盘空间。

2)虚拟代理,这种方式通常

文档评论(0)

乐毅淘文斋 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8121131046000040

1亿VIP精品文档

相关文档