1. 享元模式简要介绍
所谓“享元”,顾名思义就是被共享的单元。享元模式的用意是 复用对象,节俭内存 , 前提是享元对象是不可变 对象。
具体来讲,当一个零碎中存在大量反复对象的时候,如果这些反复的对象是不可变对象,咱们就能够利用享元模式将对象设计成享元,在内存中只保留一份实例,供多处代码援用。这样能够缩小内存中对象的数量,起到节俭内存的目标。
实际上,不仅仅雷同对象能够设计成享元,对于类似对象,咱们也能够将这些 对象中雷同的局部(字段)提取进去,设计成享元,让这些大量类似对象援用这些享元。
这里我略微解释一下,定义中的“不可变对象”指的是,一旦通过构造函数初始化实现之后,它的状态(对象的成员变量或者属性)就不会再被批改了。所以,不可变对象不能裸露任何 set() 等批改外部状态的办法。之所以要求享元是不可变对象,那是因为它会被多处代码共享应用,防止一处代码对享元进行了批改,影响到其余应用它的代码。