zoukankan      html  css  js  c++  java
  • 亨元模式(对象池)

    定义:复用我们内存中已存在的对象,降低系统创建、销毁对象实例的性能消耗。
    对象池:
    1、根据对象类型动态的创建对象实例。
    2、根据对象池中的配置,在对象池中找到空闲的实体提供给程序调用,减少创建对象的次数。
    3、我们需要设计每个类型的缓冲池,通过把对象进行缓存,提供性能。如果对象池中的对象长期不会调用,那么我们会提供一个销毁对象的机制。

    优点:通过共享对象节省总体资源。
    使用:以下例子创建一个子弹的复用机制,使子弹不用频繁创建。
    1.创建子弹的接口及实体类:

    public interface IBullet
    {
    
    }
    
    public class Bullet : IBullet
    {
    
    }

    2.创建子弹的复用管理类:子弹销毁时调用CollectBullet,创建时调用GetBullet。

    public class BulletControl
    {
        public List<Bullet> BulletList = new List<Bullet>();
    
        public void CollectBullet(Bullet bullet)
        {
         bullet.SetActive(false);
            BulletList.Add(bullet);
        }
        public Bullet GetBullet()
        {
            if (BulletList.Count == 0)
            {
                return new Bullet();
            }
            else
            {
                Bullet b = BulletList[0];
                BulletList.Remove(b);
           b.SetActive(false);
                return b;
            }
        }
    }
    一直想把之前工作、学习时记录的文档整理到博客上,一方面温故而知新,一方面和大家一起学习 -程序小白
  • 相关阅读:
    poj2386 Lake Counting
    poj 1852 Ants
    Luogu P2419 [USACO08JAN]牛大赛Cow Contest
    Luogu P2336 [SCOI2012]喵星球上的点名
    Luogu P2463 [SDOI2008]Sandy的卡片
    Luogu P2852 [USACO06DEC]牛奶模式Milk Patterns
    Luogu P4248 [AHOI2013]差异
    【NOI2008】志愿者招募
    Luogu P2743 [USACO5.1]乐曲主题Musical Themes
    P3723 [AH2017/HNOI2017]礼物
  • 原文地址:https://www.cnblogs.com/wang-jin-fu/p/8320840.html
Copyright © 2011-2022 走看看