js设计模式-享元模式(8)

  1. 问题场景
    大量相似对象导致性能下降;
    对象的大多数状态都可以变为外部状态

  2. 解决思路
    将对象间值相同的属性(内部状态)提取出来作为共享对象创建并复用之,其他属性(外部状态)在运行时动态添加到共享对象,从而减少对象数量,以时间换空间。
    简单来说: 把10个人穿10条裤子换成1个人换10次裤子,减少了人的数量,增加了换裤子的时间。
    优化:
    (1) 一开始可能不需要共享对象——解决:用对象工厂。需要时才从工厂创建;
    (2)外部状态很多时,与共享对象的联系杂乱——解决:创建外部状态管理器,统一存储和添加外部状态。
    简单来说,用外部管理器来存储和动态给共享模特设置裤子/帽子、鞋子等外部状态。
    在这里插入图片描述

  3. 具体实现

  4. 优缺点
    优点:用相对较少的共享对象取代大量对象
    缺点:对象数量少的情况,可能会增大系统的开销,实现的复杂度较大

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值