设计模式:结构模式类

1 适配器模式Adapter

类似变压器 把被适配的类的API转换为目标类的API
例:使用变压器使110V的电器可以在220V的插座上使用。
设计模式:结构模式类_第1张图片

2 装饰模式Decorator

目的是扩展一个对象的功能
设计模式:结构模式类_第2张图片
调用方法:
发票 发票实体 = new 发票头尾部1(new 发票主体())
发票实体.print();
使用这种方式一层层给发票主体添加功能。

3 桥梁模式Bridge

一个很好的解决类爆炸问题的模式。
设计模式:结构模式类_第3张图片

4 代理模式Proxy

代理模式与装饰模式类似,都是用来增强对象功能的模式。
代理模式体现了AOP的编程思想,Java对动态代理做了很好的支持。
设计模式:结构模式类_第4张图片
常用场景:

  1. 使用某功能前对用户进行身份检查
  2. 加载一个模块前,显示“正在加载”信息

5 合成模式Composite

将对象组合成树形结构以表示“部分-整体”的层次结构。
安全式:只有文件夹有添加和删除子文件夹或文件的权利。
设计模式:结构模式类_第5张图片
透明式:树枝和树叶接口一致,均可以进行添加和删除。

6 享元模式Flyweight

运用共享技术有效地支持大量细粒度对象。
文本编辑器中每一个字母是一个享元对象,内部状态是这个字母,是被共享的,外部状态是这个字母在文本中的位置和字体、大小等信息。
Java中常量池(constant pool)就使用了享元模式,即如果两个常量内容一致,他们会共享一个地址。比如定义String s1=“a”, String s2=“a”,s1==s2。但注意常量池是在编译期被确定的,如果s2在运行时才被赋值为"a",s1 != s2。可以使用String的intern()方法在运行时使用和扩充常量池。

7 门面模式Facade

为一复杂子系统定义一个高层接口,使这一子系统更加容易使用。

你可能感兴趣的:(设计理论,设计模式,技术架构,设计模式,结构模式)