【unity】享元模式
引子
为什么需要享元模式?
小明在实际开发中,遇到一个需要大量使用某种对象的需求。小明封装了一个函数方法,每调用一次,就会不断地创建新的对象。但是这样消耗了大量内存。
显然,我们迫切地需要一种设计模式,使得对象可以被重复利用,以避免内存的过度消耗。
实现
对象池是非常典型的享元模式案例。网上的具体实现方法有很多,这里就不举例了,也可以参考【unity2D】利用C#队列Queue实现对象池这篇博客。
优缺点
优点:
- 对象可以被重复利用,能够避免内存的过度消耗,优化资源配置。
缺点:
- 提高了系统的复杂度。它需要在逻辑上划分出对象池内部与外部,回收对象时需要清理脏字段,并解除所有来自对象池外部的引用,以确保对象在池中时不会被外部影响。
注意:
- 需要有一个类来履行工厂的职责,在对象池需要对象时及时补充。
小结
开发时,很多情况下会遇到需要大量使用某种对象的需求,尤其在资源开销紧张的情况下,此时享元模式正能派上用场。