文章目录
什么是享元模式
享元模式是指使用共享物件,用来尽可能减少内存使用量以及分享资讯给尽可能多的相似物件;它适合用于只是因重复而导致使用无法令人接受的大量内存的大量物件。通过享元模式,我们可以减少创建对象的数量,以减少内存占用和提高性能。
实现享元模式需注意
享元模式是以共享的方式高效地支持大量细粒度对象(比如多次出现的匿名类或者函数式接口实现类)的重用。
享元模式能够做到共享的关键在于实现了状态的区分。
关于内部状态和外部状态
内部状态:可以共享,不会随环境变化而变化。
外部状态:不可以共享,会随环境变化而变化。
必须知道的术语
享元工厂(FlyWeightFactory):
创建并管理享元对象,享元池一般设计成键值对。
享元池:
保存所有细粒度对象的map集合
抽象享元类(FlyWeight):
通常是一个接口或抽象类,声明公共方法,这些方法可以向外界提供对象的内部状态,设置外部状态 。
具体享元类(ConcreteFlyWeight):
为内部状态提供成员变量进行存储。