桥接模式
桥接模式非常像适配器模式,都是用一个类将一种接口转换成另外一种接口,但是适配器模式的意图是:使一个或多个类的接口看起来像一个特定类的接口。桥接模式将类的接口和它的实现分离,无需修改客户端代码就可以改变或替换实现过程。
桥接模式的效果:
1 桥接模式可以保持客户端程序的接口不变,而允许读者修改显示类或要使用的类。这样可以防止重新编译一系列复杂的用户接口模块,而只需要重新编译Brudge和实际的最终显示类
2 可以分别扩展实现类和Bridge类,二者之间通常不会有相互作用。
3 对客户端程序很容易隐藏实现细节。
组合模式
组合就是对象的集合, 其中的每个对象既可以是一个组合,也可以是简单的对象。
组合模式的效果:
组合模式定义了包含简单对象和复杂组合对象的类层次结构,并使他们对客户端程序具有一致性。由于这种简化,客户端可以变得相当简单,因为节点和叶子可以用同样的方式去处理。
组合模式使得向集合添加新类型的组件变得容易,只要这些组件提供一个相似的编程接口。另一方面,这也有缺点,就是使你的程序更加一般化,很难限制某个类,而通常都希望能做到这一点。
组合模式的意图是,允许构建一棵由各种相关类组成的树,即使某些类具有不同的属性,某些类是叶子不能有孩子。
装饰模式
装饰模式提供一种方法:改变单个对象的行为,但不需要创建一个新的派生类。
装饰模式提供了一种给一个类添加职责的方法,它比使用继承更加灵活,因为它能将职责加到类的指定实例中,它也允许定制一个类,而无需在继承层次结构中创建高层次子类。
装饰模式的缺点:
1 Decorator和它包含的组件是不一样的,这样,检测对象类型时会失败。
2 装饰模式会使一个系统带有“大量的小对象”,对于维护代码的程序员来说,它们看起来都差不多,维护起来很困难。