结构型设计模式(七种):适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。

一、适配器模式

涉及了 适配器模式的介绍、Spring 中适配器模式的使用。

Java设计模式之适配器模式

二、装饰器模式

JDK 最常见的装饰者模式 I/O。

Java设计模式之装饰器模式

三、代理模式

Spring AOP 就是基于动态代理对切点进行通知增强的。

Java设计模式之代理模式

四、外观模式

外观模式是指提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。

外观模式类图:
设计模式(二)- 结构型设计模式
外观模式非常容易理解,就是对于一个复杂的系统,我们设计一个外观类(高层接口),对下属的子系统进行统一的使用和管理。

五、桥接模式

桥接模式将抽象和具体分离开来,使之分别发展,但需要在抽象中聚合具体对象。

桥接模式适用于:抽象类和具体类分别爆炸增长,如果单单使用继承的话会导致类越来越多,使用桥接模式将抽象和具体类分离开来,并在抽象类中聚合一个具体类对象来代替继承。

桥接模式类图:
设计模式(二)- 结构型设计模式
在业务开发中桥接模式用的不是很多,简单了解即可。

六、组合模式

组合模式允许将对象组合成树形结构来表现“整体/部分”层次结构。

组合模式类图:
设计模式(二)- 结构型设计模式
ComponentLeafComposite 的顶层接口,规定了以一致的方式对节点或者组合对象进行处理。

简单来说,组合模式就是使用LeafComposite这两个组件来构建树形结构组合对象。

七、享元模式

享元模式是指将一些可重复利用的对象收集起来,统一管理。

享元模式一般适用于:同一个资源或对象被重复利用或重复创建的场景下。

享元模式的类图:
设计模式(二)- 结构型设计模式
在 Java 中有很多场景都使用到了享元模式,例如数据库连接池、线程池、字符串常量池,这些池子都会重复利用一些资源对象。

至此,结构型设计模式中七种设计模式就讲解完了,下一篇学习行为型设计模式。

相关文章: