享元模式

享元模式通过共享技术实现相同或相似对象的重用。

运用共享技术有效地支持大量细粒度对象的复用,享元模式要求能够共享的对象必须是细粒度对象。

享元模式可以实现对象的多次复用。

享元模式主要用于减少创建对象的数量,以减少内存占用和提高性能。(减少对象数量从而改善应用所需的对象结构的方式)

如果未找到匹配的对象,则创建新对象。

在有大量对象时,会造成内存溢出,如果有相同的业务请求,直接返回在内存中已有的对象,避免重新创建。

享元模式的核心在于享元工厂类,享元工厂类作用在于提供一个用于存储享元对象的享元池。

享元池中包含了相同的对象,如果用户 未在享元池中找到自己需要的对象,则在享元池中创建一个新的享元对象。

优点:1、使用享元模式可以节省内存空间,适合处理大量对象具有相同的属性值。

           2、享元可以使用方法的参数接受外部状态中的数据,但外部状态数据不会干扰到享元中的内部数据(可以在不同的环境下使用享元对象)

缺点:系统需要分离出内部和外部状态,不应该随着内部状态的变化而变化

使用场景:1、系统有大量相似的对象

                   2、对象的多数状态都可变为外部状态

                   3、应当在多次使用享元对象时才值得使用享元模式

原文地址:https://www.cnblogs.com/cye9971-/p/10600828.html