【unity】享元模式

引子

为什么需要享元模式?
小明在实际开发中,遇到一个需要大量使用某种对象的需求。小明封装了一个函数方法,每调用一次,就会不断地创建新的对象。但是这样消耗了大量内存。

显然,我们迫切地需要一种设计模式,使得对象可以被重复利用,以避免内存的过度消耗。

实现

对象池是非常典型的享元模式案例。网上的具体实现方法有很多,这里就不举例了,也可以参考【unity2D】利用C#队列Queue实现对象池这篇博客。

优缺点

优点:

  1. 对象可以被重复利用,能够避免内存的过度消耗,优化资源配置。

缺点:

  1. 提高了系统的复杂度。它需要在逻辑上划分出对象池内部与外部,回收对象时需要清理脏字段,并解除所有来自对象池外部的引用,以确保对象在池中时不会被外部影响。

注意:

  1. 需要有一个类来履行工厂的职责,在对象池需要对象时及时补充。

小结

开发时,很多情况下会遇到需要大量使用某种对象的需求,尤其在资源开销紧张的情况下,此时享元模式正能派上用场。

posted @ 2022-04-05 11:10  AshScops  阅读(84)  评论(0编辑  收藏  举报