享元模式

对象的结构模式!

定义

以共享的方式高效地支持大量的细粒度对象。

适用场景

下列条件都满足时,考虑使用享元模式

  1. 一个系统中有大量对象
  2. 这些对象耗费大量的内存
  3. 对象的属性可以分为有状态和无状态的两类
  4. 把这些对象所有的有状态属性去除后,为同一个无状态对象

实现方式

  1. 将可以共享的状态和不可共享的状态区分开,并将不可共享的状态从类里去除
  2. 为这个类的创建提供一个工厂,进行创建控制

状态外部化

将状态移除享元对象后,对象的行为仍然需要这些状态,即状态剥离后无法正常工作!

解决办法

  1. 将不能剥离的行为和状态移动到客户端;(堆积在客户端,不利于复用和维护)
  2. 由客户端提供不可共享的状态,作为参数传递给享元对象。(改写方法的参数表,传递)

优点和缺点

优点

  1. 它大幅度地降低了内存中对象的数量

缺点

  1. 使得系统更加复杂,为了使得对象共享,将一些状态外部化,让程序逻辑复杂
  2. 读取外部状态使得运行时间稍微变长。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值