《游戲編程模式》筆記——享元模式
享元模式的定義
享元模式是一種結(jié)構(gòu)型設(shè)計模式。
把一個對象的狀態(tài)分成內(nèi)部狀態(tài)和外部狀態(tài),內(nèi)部狀態(tài)即是不變的,外部狀態(tài)是變化的,通過共享不變的部分,達(dá)到減少對象數(shù)量并節(jié)約內(nèi)存的目的。其本質(zhì)是緩存共享對象,降低內(nèi)存消耗。
應(yīng)用場景
有大量相同相似對象的情況。
共享部分足夠多的時候才有必要使用。
目的
減少大量內(nèi)存使用。
降低程序需要處理的數(shù)據(jù)量。
創(chuàng)造需要共享信息的大量實例更方便。
實現(xiàn)方式
設(shè)計數(shù)據(jù)結(jié)構(gòu),使結(jié)構(gòu)包含共享部分。
對象實例僅引用共享部分,不對其進(jìn)行修改。
例子


再例如吸血鬼like游戲中,屏幕中大量出現(xiàn)的敵人,每個敵人都指向一個基本數(shù)據(jù),這個數(shù)據(jù)會定義這個敵人的血量,攻擊力,移動速度等信息。每個敵人會保存一份自己的實際血量來判斷自己是否死亡,在受到傷害時,不會去對共享的基本數(shù)據(jù)做修改,而是修改自己的實際血量。
參考:
《游戲編程模式》

http://m.weizhi.cc/tech/detail-259012.html
設(shè)計模式-享元(Flyweight) - 麒麟的文章 - 知乎 https://zhuanlan.zhihu.com/p/568604535
標(biāo)簽: