游戏设计模式学习笔记(3)享元模式

游戏设计模式学习笔记(3)享元模式

参考:

《设计模式与游戏完美开发》

《游戏编程模式》(https://github.com/tkchu/Game-Programming-Patterns-CN)

《图说设计模式( Graphic Design Patterns)》(https://github.com/me115/design_patterns)

【游戏设计模式】浅墨_毛星云: https://blog.csdn.net/poem_qianmo/article/details/53240330


定义

  • 享元模式,以共享的方式高效地支持大量的细粒度的对象。通过复用内存中已存在的对象,降低系统创建对象实例的性能消耗。
    • “内在状态”:“只能读取而不能写入”的共享部分(模型的网格)
    • “外在状态”:“不能共享”的部分(模型的位置)

[外链图片转存失败(img-juBSzmYS-1569164409776)(E:\csdn博客使用图片\DesignPatterns\005.png)]

同一个树模型,相同的网格,树皮,枝叶,拿来共享。

类图,时序图

享元模式包含如下角色:

  • Flyweight: 抽象享元类
    • 定义组件的操作接口
  • ConcreteFlyweight: 具体享元类
    • 产生可以共享的组件
  • UnsharedConcreteFlyweight: 非共享具体享元类
    • 单独工作的组件,不包含共享资源
  • FlyweightFactory: 享元工厂类
    • 产生和管理Flyweight组件
    • 产生共享组件时,会放到管理容器内

在这里插入图片描述
在这里插入图片描述


应用场景

  • 人物角色的基本属性,模型资源,跳跃高度等相同属性。
  • 对象池,共享子弹。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值