软件工程uml课件体系结构第24章.pdfVIP

  • 1
  • 0
  • 约8.36千字
  • 约 34页
  • 2023-08-03 发布于北京
  • 举报
第二十四章 结构型模式 结构型模式涉及到如何组合类和对象以获得更大 的结构。结构型类模式采用继承机制来组合接口或实 现。一个简单的例子是采用多重继承方法将两个以上 的类组合成一个类,结果这个类包含了所有父类的性 质。这一模式尤其有助于多个独立开发的类库协同工 作。另外一个例子是类形式的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 模式是结构型对象模式的一个实例。 它描述了如何构造一个类层次式结构,这一结构由两 种类型的对象 (基元对象和组合对象)所对应的类构 成. 其中的组合对象使得你可以组合基元对象以及其 他的组合对象,从而形成任意复杂的结构。在 模式中, 对象作为其他对象的一个方便的替代 或占位符。它的使用可以有多种形式。例如它可以在 局部空间中代表一个 地址空间中的对象,也可以 表示一个要求被加载的较大的对象,还可以用来保护 对敏感对象的 。 模式还提供了对对象的一 些特有性质的一定程度上的间接 ,从而它可以限 制、增强或修改这些性质。 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模式在转发 一条信息之前或之后都可以完成它的工作 (比如绘制 组件的边框)。 1. BRIDGE (桥接)——对象结构型模式 1. 意图 将抽象部分与它的实现部分分离,使它们都可以 独立地变化。 2. 别名 H a n d l e / B o d y 3. 动机 当一个抽象可能有多个实现时,通常用继承来协 调它们。抽象类定义对该抽象的接口,而具体的子类 则用不同方式加以实现。但是此方法有时不够灵活。 继承机制将抽象部分与它的实现部分固定在一起, 使得难以对抽象部分 部分独立地进行修改

文档评论(0)

1亿VIP精品文档

相关文档