作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO
联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬
学习必须往深处挖,挖的越深,基础越扎实!
享元模式
享元模式的定义:
使用共享对象可以有效的支持大量的明细粒度的对象
享元模式是以共享的方式高效的支持大量的细粒度的对象,而享元模式能做到共享的关键是区分内部状态和外部状态。
- 内部状态:内部状态是存储在享元对象内部的,可以共享的信息,并且这些信息不会随着环境的改变而改变
- 外部状态:外部状态是对象得以依赖的标记,外部状态是随环境改变而改变且不可以共享的状态
享元模式的参与角色
- Flyweight 抽象享元角色:该角色对享元类进行抽象,同时定义对象的外部状态和内部状态的接口或实现
- ConcreteFlyweight 具体享元角色:该角色实现抽象享元定义定义业务,同时享元对象的内部状态必须与环境无关,从而使得享元对象可以在系统内共享。
- FlyweightFactory 享元工厂:该角色构造一个池容器负责创建和管理享元角色,并提供从池中获得对象的方法