zoukankan      html  css  js  c++  java
  • 设计模式学习(八)桥接模式组合模式装饰模式

    桥接模式

    桥接模式非常像适配器模式,都是用一个类将一种接口转换成另外一种接口,但是适配器模式的意图是:使一个或多个类的接口看起来像一个特定类的接口。桥接模式将类的接口和它的实现分离,无需修改客户端代码就可以改变或替换实现过程。

    桥接模式的效果:

    1 桥接模式可以保持客户端程序的接口不变,而允许读者修改显示类或要使用的类。这样可以防止重新编译一系列复杂的用户接口模块,而只需要重新编译Brudge和实际的最终显示类

    2 可以分别扩展实现类和Bridge类,二者之间通常不会有相互作用。

    3 对客户端程序很容易隐藏实现细节。

    组合模式

    组合就是对象的集合, 其中的每个对象既可以是一个组合,也可以是简单的对象。

    组合模式的效果:

    组合模式定义了包含简单对象和复杂组合对象的类层次结构,并使他们对客户端程序具有一致性。由于这种简化,客户端可以变得相当简单,因为节点和叶子可以用同样的方式去处理。

    组合模式使得向集合添加新类型的组件变得容易,只要这些组件提供一个相似的编程接口。另一方面,这也有缺点,就是使你的程序更加一般化,很难限制某个类,而通常都希望能做到这一点。

    组合模式的意图是,允许构建一棵由各种相关类组成的树,即使某些类具有不同的属性,某些类是叶子不能有孩子。

    装饰模式

    装饰模式提供一种方法:改变单个对象的行为,但不需要创建一个新的派生类。

    装饰模式提供了一种给一个类添加职责的方法,它比使用继承更加灵活,因为它能将职责加到类的指定实例中,它也允许定制一个类,而无需在继承层次结构中创建高层次子类。

    装饰模式的缺点:

    1 Decorator和它包含的组件是不一样的,这样,检测对象类型时会失败。

    2 装饰模式会使一个系统带有“大量的小对象”,对于维护代码的程序员来说,它们看起来都差不多,维护起来很困难。
  • 相关阅读:
    hibernate的缓存机制
    [poj 3159]Candies[差分约束详解][朴素的考虑法]
    POJ 2773 Happy 2006
    给定一个循环链表,实现一个算法返回这个环的开始结点
    使用jQuery创建模态窗口登陆效果
    实战数据结构(3)_两个单链表间的合并操作
    sql的强大功能(看一条sql解决的复杂业务)
    uva 10905 Children's Game (排序)
    JFinal学习 & Gradle配置续 & Tomcat配置
    Gradle项目学习 & HttpAsyncClient学习 & CountDownLatch学习
  • 原文地址:https://www.cnblogs.com/xh831213/p/879857.html
Copyright © 2011-2022 走看看