享元模式
采用一个共享来避免大量拥有相同内容对象的开销。使用享元模式可有效支持大量的细粒度对象
- 系统中存在大量的相似对象
- 细粒度的对象都具备较接近的外部状态,而且内部状态与环境不关,也就是说对象没有特定身份
- 需要缓冲池的场景
内部状态与外部状态:在享元对象内部并且不会随着环境改变而改变的共享部分,可以称之为享元对象的内部状态,反之随着环境改变而改变的,不可共享的状态称之为外部状态
过年买火车票的时候,我们需要查询车票的情况,那么如果每次查询车票时都创建一个结果,那么必然会大量的创建出许多重复的对象,频繁的去销毁他们,使得GC任务繁重。那么这时我们可以使用享元模式,将这些对象缓存起来,查询时优先使用缓存,没有缓存在重新创建
Message 使用Message推荐obtain(),不要去new了