1.仓库(Inevntory)由二叉搜索树实现
2.身上的背包(Backpack)由数组实现,并有一个和数组大小一致的列表容器(List)保存使用背包格子的历史纪录,每次使用背包上的某个格子时,从列表容器中删除这个格子id,再push_back这个id,以此保证列表的第一元素就是最久未被使用的格子id
3.用户物品必须派生自PotionBase, WeaponBase, CoinBase等基类
4.用户物品的生成使用工厂模式,需用户继承ItemFactory类,并实现Create()接口
5.用户物品由物品类别(type),物品id,物品名称(name)唯一标识
6.Inventoy和Backpack只保存用户物品的唯一标识符,并不保存具体对象,具体对象在使用时由ItemFactory根据唯一标识符生成
7.Inventoy和Backpack借由饿汉单例模式实现多线程安全
8.示例程序在TestMain目录
9.示例程序中Little HP Potion, Middle HP Potion, Big HP Potion自动合成Super HP Potion, MP Potion也是