JavaScript设计模式之性能优化模式享元模式_第1页
JavaScript设计模式之性能优化模式享元模式_第2页
JavaScript设计模式之性能优化模式享元模式_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第JavaScript设计模式之性能优化模式享元模式目录前言案例享元设计模式的状态

前言

享元设计模式是用于性能优化的模式,这种设计模式的核心在于可以共享技术并支持对大量细分过后的对象进行调整,如果系统中因为创建大量类似的对象而导致内存占用过高,享元设计模式在其中就会起到非常重要的作用,因为它可以使其减少重复创建相同类似的实例对象。在JavaScript中浏览器特别是移动端的浏览器部分所能够使用的内存并不是很多,所以在其中节省内存就变得至关重要

案例

假设有一个服装厂,目前的产品拥有20种男士衣服和20种女士衣服,为了提高衣服产品销量,服装厂决定生产一些塑料模特来穿上他们的衣服拍成广告照片进行宣传。正常情况下需要20个男模特和20个女模特,然后让他们每一个模特都穿上一件内衣来在进行拍照。我们来实现一下

创建一个模特实例,该模特实例接收俩个参数,sex是指男模特还是女模特,name是衣服的编号,拥有一个拍照方法take,调用此方法则会进行拍照

class

Model{

constructor(sex,name){

this.sex=sex;

=name;

}

take(){

console.log(`进行拍照,性别:${this.sex},衣服编号:${}`);

}

使用:

for

(let

index

=

0;

index

=

20;

index++)

{

var

male=new

Model('male',index);

var

female=new

Model('female',index);

male.take();

female.take();

如上操作,现在一共有20套男士衣服和20套女士衣服,所以会产生40个对象,如果将来我们生产了100种,1000种衣服,程序可能还没有创建够这么多实例就已经提前崩溃,我们来考虑下如何进行优化这个场景,虽然有40种衣服,但是我们并不需要20个男模特和20个女模特,其实男女模特各自拥有一个就可以了,他们可以分别穿上不同的衣服进行拍照,然后再更换其他衣服在进行拍照,以此往复

我们男女模特各创建一个实例,然后通过更换衣服的编号在进行拍照,最后我们只创建了俩个实例就完成了之前的功能

var

male=new

Model('male');

var

female=new

Model('female');

for

(let

index

=

0;

index

=

20;

index++)

{

=index;

=index;

male.take();

female.take();

享元设计模式的状态

享元设计模式状态分为内部状态和外部状态,内部状态是可以被存储于对象内部且被共享的,外部状态独立于具体的场景,一般无需改变,他可以根据场景进行变化,不过她是不可被共享的

享元设计模式的状态我们可以使用我们做过的案例来进行描述,性别是内部状态,而服装是外部状态,通过区分这俩种状态,大大减少了系统中的对象数量,一般内部状态有多少种组合,系统中便会存在多少个对象

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论