using System;
using System.Collections.Generic;
public class ObjectPool<T> where T:class
{
//堆棧
private readonly Stack<T> m_stack;
//事件
private readonly Func<T> m_ActionOnCreate;
private readonly Action<T> m_ActionOnGet;
private readonly Action<T> m_ActionOnRelease;
//構(gòu)造函數(shù)
public ObjectPool(Func<T> actionOnCreate, Action<T> actionOnGet, Action<T> actionOnRelease)
{
m_stack = new Stack<T>();
m_ActionOnCreate = actionOnCreate;
m_ActionOnGet = actionOnGet;
m_ActionOnRelease = actionOnRelease;
}
//獲取接口
public T Get()
{
T obj;
if(m_stack.Count == 0)
{
//執(zhí)行構(gòu)建操作
obj = m_ActionOnCreate();
}
else
{
obj = m_stack.Pop();
}
//執(zhí)行回調(diào)
if(m_AcitonOnGet != null)
{
m_ActionOnGet(obj);
}
return obj;
}
//釋放接口
public void Release(T obj)
{
if(m_ActionOnRelease != null)
{
m_ActionOnRelease(obj);
}
m_stack.Push(obj);
}
//clear接口
public void Clear()
{
m_stack.Clear();
}
}
Unity 簡單的緩存池
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進(jìn)店門肉微,熙熙樓的掌柜王于貴愁眉苦臉地迎上來匾鸥,“玉大人,你說我怎么就攤上這事碉纳∥鸶海” “怎么了?”我有些...
- 文/不壞的土叔 我叫張陵劳曹,是天一觀的道長奴愉。 經(jīng)常有香客問我,道長铁孵,這世上最難降的妖魔是什么锭硼? 我笑而不...
- 正文 為了忘掉前任,我火速辦了婚禮蜕劝,結(jié)果婚禮上檀头,老公的妹妹穿的比我還像新娘。我一直安慰自己岖沛,他們只是感情好暑始,可當(dāng)我...
- 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著婴削,像睡著了一般廊镜。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上唉俗,一...
- 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼寺酪!你這毒婦竟也來了坎背?” 一聲冷哼從身側(cè)響起,我...
- 正文 年R本政府宣布行瑞,位于F島的核電站奸腺,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏血久。R本人自食惡果不足惜突照,卻給世界環(huán)境...
- 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望洋魂。 院中可真熱鬧,春花似錦喜鼓、人聲如沸副砍。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽豁翎。三九已至,卻和暖如春隅忿,著一層夾襖步出監(jiān)牢的瞬間心剥,已是汗流浹背。 一陣腳步聲響...
推薦閱讀更多精彩內(nèi)容
- 在公司看源碼的時候熙卡,發(fā)現(xiàn)一個投籃的場景中,玩家把籃球不斷投出去励饵,然后不斷的創(chuàng)建和銷毀對象驳癌。于是試著寫個緩存池來管理...
- 我們知道不限于工程 代碼之中 萬事之中 總是不斷尋找最好的方案 方法去解決同一樣事 當(dāng)然 一個事物 這樣做可以 ...