第二十四章 构型模式.pptVIP

  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文档。上传文档
查看更多
第二十四章 构型模式

* * 第二十四章 结构型模式 结构型模式涉及到如何组合类和对象以获得更大的结构。结构型类模式采用继承机制来组合接口或实现。一个简单的例子是采用多重继承方法将两个以上的类组合成一个类,结果这个类包含了所有父类的性质。这一模式尤其有助于多个独立开发的类库协同工作。另外一个例子是类形式的A d a p t e r 模式。一般来说,适配器使得一个接口( a d a p t e e的接口)与其他接口兼容,从而给出了多个不同接口的统一抽象。为此,类适配器对一个a d a p t e e类进行私有继承。这样,适配器就可以用a d a p t e e的接口表示它的接口。 结构型对象模式不是对接口和实现进行组合,而是描述了如何对一些对象进行组合,从而实现新功能的一些方法。因为可以在运行时刻改变对象组合关系,所以对象组合方式具有更大的灵活性,而这种机制用静态类组合是不可能实现的。 Composite 模式是结构型对象模式的一个实例。它描述了如何构造一个类层次式结构,这一结构由两种类型的对象(基元对象和组合对象)所对应的类构成. 其中的组合对象使得你可以组合基元对象以及其他的组合对象,从而形成任意复杂的结构。在Proxy 模式中, Proxy对象作为其他对象的一个方便的替代或占位符。它的使用可以有多种形式。例如它可以在 局部空间中代表一个远程地址空间中的对象,也可以表示一个要求被加载的较大的对象,还可以用来保护对敏感对象的访问。 Proxy模式还提供了对对象的一些特有性质的一定程度上的间接访问,从而它可以限制、增强或修改这些性质。 F l y w e i g h t 模式为了共享对象定义了一个结构。至少有两个原因要求对象共享:效率和一致性。F l y w e i g h t的对象共享机制主要强调对象的空间效率。使用很多对象的应用必需考虑每一个对象的开销。使用对象共享而不是进行对象复制,可以节省大量的空间资源。但是仅当这些对象没有定义与上下文相关的状态时,它们才可以被共享。F l y w e i g h t的对象 没有这样的状态。任何执行任务时需要的其他一些信息仅当需要时才传递过去。由于不存在与上下文相关的状态,因此F l y w e i g h t对象可以被自由地共享。 如果说F l y w e i g h t模式说明了如何生成很多较小的对象,那么F a c a d e 模式则描述了如何用单个对象表示整个子系统。模式中的f a c a d e用来表示一组对象, f a c a d e的职责是将消息转发给它所表示的对象。B r i d g e 模式将对象的抽象和其实现分离,从而可以独立地改变它们。 Decorator 模式描述了如何动态地为对象添加职责。Decorator模式是一种结构型模式。这一模式采用 递归方式组合对象,从而允许你添加任意多的对象职责。例如,一个包含用户界面组件的Decorator对象可以将边框或阴影这样的装饰添加到该组件中,或者它可以将窗口滚动和缩放这样的功能添加到组件中。我们可以将一个Decorator对象嵌套在另外一个对象中就可以很简单地增加两个装饰,添加其他的装饰也是如此。因此,每个Decorator对象必须与其组件的接口兼容并且保证将消息传递给它。 Decorator模式在转发一条信息之前或之后都可以完成它的工作(比如绘制组件的边框)。 4.1 BRIDGE(桥接)——对象结构型模式 1. 意图 将抽象部分与它的实现部分分离,使它们都可以独立地变化。 2. 别名 H a n d l e / B o d y 3. 动机 当一个抽象可能有多个实现时,通常用继承来协调它们。抽象类定义对该抽象的接口,而具体的子类则用不同方式加以实现。但是此方法有时不够灵活。继承机制将抽象部分与它的实现部分固定在一起, 使得难以对抽象部分和实现部分独立地进行修改、扩充和重用。 让我们考虑在一个用户界面工具箱中,一个可移植的Wi n d o w抽象部分的实现。例如,这一抽象部分应该允许用户开发一些在X Window System和I B M的Presentation Manager(PM)系统中都可以使用的应用程序。运用继承机制,我们可以定义Wi n d o w抽象类和它的两个子类XWi n d o w与P M Wi n d o w,由它们分别实现不同系统平台上的Wi n d o w界面。但是继承机制有两个不足之处: 1) 扩展Wi n d o w抽象使之适用于不同种类的 窗口或新的系统平台很不方便。假设有Wi n d o w的一个子类I c o n Wi n d

文档评论(0)

woai118doc + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档