持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第9天,点击查看活动详情
前言
经过长途跋涉终于我们要把之前的坑补上了,在之前的番外篇中我们讲了结构模式与其他两大模式的关联,本篇章我将补充一下之前的结构模式没有填的坑。享元模式。
享元模式
享元模式顾名思义是共享的单元,那么共享是什么?单元又是什么?一开始都会有一些懵逼享元模式主要强在他的资源调配上面,共享了那么这个东西说明是大家都可以用的,享元模式分为两种状态,一种是内在状态,一种是外在状态。
内在状态: 他是不变的,是可以共享出去大家一起使用的东西。
外在状态: 经常性变动的,可能无法共享的。
内外状态可能听起来不懂,随后我会举一些例子,现在我们来看他的另一面,既然内在共享了,那么资源分配相对来说可以减少许多。内存变动主要看外在状态的变化。
享元模式应用场景
该模式大量运用在各种池化技术上面,经典的数据库连接池就是使用的享元模式的思想,使用一个Vetor队列来进行connect的缓存,在获取时通过一个if判断来决定走缓存还是创建新的链接对象,而这个vetor队列就是缓存里面装满了各种的Connct对象。对了,享元模式经常与工厂模式一起使用,从而形成享元工厂,通过用户传递的不同的值来获取不同的实例去执行任务。获取实例则使用了一个HashMap 或其他容器类去缓存就行,内部也是用一个if判断来决定是否走缓存。