外观模式提供了一个高层接口,这个接口使得这一子系统更加容易使用。简单来说,外观模式就像是一个建筑物的“门面”,它隐藏了内部的复杂结构,只展示给用户简单、清晰的操作界面。
外观模式主要涉及两个组件:
假设我们有一个家庭影院系统,它由多个部分组成:投影仪、音响、DVD播放器等。每个部分有自己的操作方式,如果用户直接与这些复杂的子系统交互,可能会感到困惑。因此,我们可以创建一个外观类来简化这些操作。
组合模式是一种结构型设计模式,它允许你将对象组合成树形结构来表现整体/部分的层次结构。组合模式使得客户端可以统一对待单个对象和组合对象。
装饰模式的核心在于,它允许在不改变对象自身的基础上,在运行时向对象添加新的职责。这是通过创建一个包含原始对象的特殊包装对象(即装饰器)来实现的。装饰器类遵循与原始对象相同的接口,并在调用原始对象的方法之前或之后添加额外的行为。
装饰模式通常由以下几个角色组成:
装饰模式的优点包括:
桥接模式是一种结构型设计模式,它将抽象部分与其实现部分分离,使它们可以独立地变化。通过这种方式,桥接模式通过组合的方式建立两个独立变化的维度,一个维度为抽象层(Abstraction),另一个维度为实现层(Implementation),从而减少它们之间的耦合。
在传统的继承机制中,抽象和实现通常是通过继承关系来耦合的,这样的设计难以应对变化,因为一旦抽象部分需要更改,它的实现部分也必须更改,反之亦然。桥接模式通过引入一个抽象层来管理实现层的引用,从而使得抽象和实现可以独立地进行扩展。
桥接模式适用于以下场景:
适配器模式是一种结构型设计模式,它允许不兼容的接口之间能够相互合作。这种模式涉及到一个单独的类,它负责加入独立的或不兼容的接口功能。简单来说,适配器模式就是一个中间件,它使得原本由于接口不兼容而不能一起工作的类可以一起工作。
适配器模式通常应用于以下情况: