一.简介
今天来学习一下享元模式,英文名字叫flyweight pattern,字面上看是轻量级的意思,还是感觉中文翻译比较好理解。所谓享元,就是共享相同部分的意思。当我们在设计一个游戏的时候,比如我们要在场景中绘制三个相同的人物模型,如果我们直接创建三个一样的人物模型对象并绘制,那么我们就需要每次都读入人物模型相关的网格信息+贴图材质信息,很明显,这些东西只要有一份就可以了,而唯一不同的就是他们的位置不同。那么,我们完全可以只留存一份人物模型对象,每次绘制的时候,设置一下人物的位置信息,然后绘制,也可以达到一样的效果。而这种思想,就是享元模式的思想。
下面我们来看一下享元模式的定义以及UML类图:
享元模式(Flyweight Pattern):运用共享技术有效地支持大量细粒度对象的复用。系统只使用少量的对象,而这些对象都很相似,状态变化很小,可以实现对象的多次复用。由于享元模式要求能够共享的对象必须是细粒度对象,因此它又称为轻量级模式,它是一种对象结构型模式。
享元模式包含了一些其他的设计模式,比如简单工厂模式和单例模式。一般地,我们会创建一个享元工厂,这个工厂一般是单例模式的。工厂内根据一定标识存储了享元对象,当我们请求一个享元对象时,工厂先在存储的对象中根据标识寻找是否有该对象,如果有,直接返

本文详细探讨了面向对象设计模式中的享元模式,通过对比没有使用享元模式和使用后的例子,阐述了该模式如何有效地减少内存中对象的数量,提高性能。同时,解释了享元模式中的内部状态和外部状态概念,最后对享元模式做了全面的总结。
最低0.47元/天 解锁文章
745

被折叠的 条评论
为什么被折叠?



