今天的博客主题
设计模式 ——》 设计模式之享元模式
享元模式 FP (Flyweight Pattern)
定义
使用共享技术有效的支持大量细粒度的对象。
又称为轻量级模式,是对象池的一种实现。类似于线程池,避免不停的创建销毁对象,消耗性能。
提供了减少对象数量从而改善应用所需的对象结构方式。
其宗旨就是:共享细粒度对象,将多个对同一对象的访问集中起来,不必为每个访问者单独创建一个对象,依次来降低内存CPU的消耗。属于结构性模式。
因为要求细粒度的对象,所以不可避免的会使用对象数量多且性质相似,我们就将这个对象的信息分为两部分:内部状态和外部状态
内部状态是指对象共享出来的信息,存储在享元对象内部,不会随着环境的改变而改变。
外部状态是说对象得以一个依赖的标记,是随着环境的变化而改变,不可共享的状态。
比如连接池中的连接对象,保存连接对象里的用户名,密码,url等信息,在创建对象的时候就设置好了,不会随着环境的改变而改变,这些就是内部状态。每个连接需要回收利用,把它标记为可用状态,这些就是外部状态。
说白了就是对象共享,共享对象。
应用场景
1)系统有大量相似对象,需要缓冲池的场景。
2)多用于系统底层的开发,以便解决系统的性能。
3)
优点
1)减少对象的创建,减少内存中对象数量,降低内存