合规国际互联网加速 OSASE为企业客户提供高速稳定SD-WAN国际加速解决方案。 广告
## 享元设计模式 ### 属于结构性模式,主要用于减少创建对象的数量,以减少内存占用和提高性能,它提供了减少对象数量从而改善应用所需要的对象结构的方式。 ### 享元设计模式尝试重用现有的同类对象,如果未找到匹配的对象,则创建新对象。 ### ## 应用场景 ### 1、JAVA 中的 String,如果字符串常量池⾥有则返回,如果没有则创建⼀个字符串保存在字符串常量池⾥⾯ 2、数据库连接池、线程池等 3、如果系统有⼤量相似对象,或者需要⽤缓冲池的时候可以使⽤享元设计模式,也就是⼤家说的池化技术如果发现某个对象的⽣成了⼤量细粒度的实例,并且这些实例除了⼏个参数外基本是相同的,如果把那些共享参数移到类外⾯,在⽅法调⽤时将他们传递进来,就可以通过共享对象,减少实例的个数 ### ## 角色 ### **抽象享元⻆⾊**:为具体享元⻆⾊规定了必须实现的⽅法,⽽外部状态就是以参数的形式通过此⽅法传⼊ **具体享元⻆⾊**:实现抽象⻆⾊规定的⽅法。如果存在内部状态,就负责为内部状态提供存储空间。 **享元⼯⼚⻆⾊**:负责创建和管理享元⻆⾊。要想达到共享的⽬的,这个⻆⾊的实现是关键 **客户端⻆⾊**:维护对所有享元对象的引⽤,⽽且还需要存储对应的外部状态 ### ![](https://img.kancloud.cn/10/d7/10d7ab953006d01373279451e485956c_912x499.png) ### ## 具体实现(云效代码study-java项目当中设计模式当中有代码案例) ### ![](https://img.kancloud.cn/33/14/3314994bcdfea07456c9a3fb39b71c6f_1889x921.png) ### ![](https://img.kancloud.cn/a7/09/a7099d6d60ff9f8d04e29ac6d8b037ab_1370x907.png) ### ![](https://img.kancloud.cn/35/49/35494c9450be23c9767b48cd20097aee_1323x940.png) ### ![](https://img.kancloud.cn/99/15/9915efe13a384d590436402905bf3377_1368x932.png) ### ![](https://img.kancloud.cn/fc/54/fc54385abafbfe331dc0343a2814aaca_1420x923.png)