享元模式

设计模式-享元模式

定义

享元模式,以共享的方式高效地支持大量的细粒度的对象。
通过复用内存中已存在的对象,降低系统创建对象实例的性能消耗。

享元模式中有两种状态。
内蕴状态(Internal State)和外蕴状态(External State)

  • 内蕴状态,是不会随环境改变而改变的,是存储在享元对象内部的状态信息,因此内蕴状态是可以共享的。对任何一个享元对象而言,内蕴状态的值是完全相同的。
  • 外蕴状态,是会随着环境的改变而改变的。因此是不可共享的状态,对于不同的享元对象而言,它的值可能是不同的。
  • 享元模式通过共享内蕴状态,区分外蕴状态,有效隔离系统中的变化部分和不变部分。

使用场合

在以下情况都成立时,适合使用享元模式:

  • 当系统中某个对象类型的实例较多的时候。
  • 由于使用了大量的对象,造成了很大的存储开销。
  • 对象的大多数状态都可变为外蕴状态。
  • 在系统设计中,对象实例进行分类后,发现真正有区别的分类很少的时候。

如在SLG地图中,存在很多土地格子,其实大多数土地格子都是一样的只是位置不一样,
那么我们可以给不同的土地分配ID,每个ID都对应一种土地类型,这样就不用每个格子都保存一份土地数据

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值