首页 > 代码库 > JavaScript享元模式
JavaScript享元模式
享元(flyweight----蝇量级)模式是一种用于性能优化的模式。享元模式的核心是运用共享技术来有效支持大量细粒度的对象。如果系统中因为创建了大量类似的对象而导致内存占用过高,享元模式就很有用了。在JavaScript中,浏览器特别是移动端的浏览器分配的内存并不算多,如何节省内存就成了一件非常有意义的事。
享元模式要求将对象的属性划分为内部状态与外部状态(在这里状态是指属性)。享元模式的目标是尽量减少共享对象的数量。如何划分内部状态和外部状态,可以参考一下经验:
1.内部状态存储于对象内部
2.内部状态可以被一些对象共享
3.内部状态独立于具体的场景,通常不会改变
4.外部状态取决于具体的场景,并根据场景而变化,外部状态不能被共享
使用享元模式的关键就是区别内部状态和外部状态。
使用了享元模式后,会因为要维护一些多出来的对象,造成额外的开销。但它又有它的好处。享元模式带来的好处很大程度上取决于如何使用及何时使用,一般来说,一下情况发生时便可以使用享元模式:
1.一个程序中使用了大量的相似对象
2.由于使用了大量对象,造成很大的内存开销
3.对象的大多数状态都可以变为外部状态
4.剥离出对象的外部状态后,可以用相对较少的共享对象取代大量对象
JavaScript享元模式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。