1. 概述
“结构型模式”是GoF设计模式中的第二大类,包括了适配器模式、装饰模式、外观模式、代理模式、桥接模式、组合模式以及享元模式7种。
其中,适配器模式、装饰模式、外观模式和代理模式,都是通过wrapper结构的引入,为类的访问提供间接性,从而提升设计的灵活性,它们4种同属“包装模式家族”。
2. 目的
在盖房子前,我们需要明确房屋的用途,然后设计合理的房屋结构,最后通过钢筋、水泥、管道、电路等等元素的合理使用,最终完工一项工程。
在面向对象的程序世界中,“结构化模式”描述了类与类之间的结构关系,通过协同不同的类和实例,可组装成一个更大的结构,进而实现程序的功能。
让我们在本篇中,共同回顾一下所学过的“结构型模式”,首先回顾下包装模式家族:
目的/场景 | 接口类型 | |
---|---|---|
代理模式(Proxy Pattern) | 为另一个对象提供一个代理或占位符,以控制对它的访问。 | 与目标对象相同 |
装饰模式(Decorator Pattern) | 通过使用公共接口,封装对对象(实例)的访问以扩展功能。 | 与目标对象相同 |
适配器模式(Adapter Pattern) | 将类的接口转换为客户端期望的另一个接口。 适配器可以协同不同的类一起工作,共同实现预期的接口功能。 | 与目标对象不同,依据Client需求定义接口 |
外观模式(Facade Pattern) | 为子系统中的一组接口提供统一的接口。 Facade定义了一个更高级的接口,使子系统更容易使用。 | 与目标对象不同,是一个全新的接口 |
接下来,是组合模式、桥接模式和享元模式:
目的/场景 | 类比 | |
---|---|---|
组合模式(Composite Pattern) | 将对象组合成树形结构,以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有"一致性"。 | “树状结构” |
桥接模式(Bridge Pattern) | 将抽象部分与它的实现部分分离,使得它们都可以独立地变化。桥接模式(Bridge)也称:柄体模式(Handle and Body)或接口模式(Interface)。 | 把“蜡笔”转成“毛笔 + 颜料盒” |
享元模式(Flyweight Pattern) | 运用共享技术,支持大量细粒度的对象。享元模式又称“轻量级模式”,也就是Flyweight的直译 | “共享单车”,优化资源的使用率 |
各位同学可通过对应的链接,导航至具体的模式,进一步查看解析和实例代码。
以上,是本篇对GoF创建型模式的总结,欢迎分享、留言。