Adapter 故名思意"适配器"类型,它主要的功能是改变一个类的方法使之符合特定的方法.实现Adapter有两种方式,一种是从类继承.在子类中加入新的方法.另一种就是将基类做为子类的一个参数,重新封装基类.
Bridge 的只要目的是将接口和类的实现分离,这类似于Adapter Pattern中的类适配.但是类适配模式的主要目的是将各个不同的类的接口统一,而Bridge的目的则是将接口和类的实现分离,在不改变类的接口的情况下,我们可以从新实现方法.
Composite 是一个组合变量的模式.它可以将复杂的类型和简单的类型组合,类似树的结构.在树中包含具有子节点或者叶子的节点,也有叶子节点.在树类型的编程中,我们经常需要根据节点的属性来判断节点的类型,然后做处理.而且不同的节点类型对其处理的方法也不尽相同.所以将所有的节点统一就可以减少客户端调用的复杂性.:) 如果节点的类型大部分是叶子类型节点,则我们可以将接口不统一,只是在取节点的时候利用instanceof来判断节点类型,来做相应的处理和调用.目的是为了Save space.
Decorator目的是不通过继承类的方式来改变类方法和接口的一种模式.就像是电视机与节目信号的关系.电视机我们可以有普通的彩色电视机和等离子 液晶等不同的类型,而电视节目的内容则只有一种,电视节目通过不同的电视机展现给观众的就是不一样的效果.在此电视机相当于就是Decorator模式的类.java.io.FilterInputStream就是一个典型的Decorator模式的类.
Adapter看起来只是为了修饰一个存在的类,你可以改变他的接口来适应新的应用,而Decorators则是为类增加了一些方法而已,而且针对的是实例,而不是该实例的类.而Composite则可以看成是一个操作列表对象的Decorators.