我想为我的游戏设计一个易于扩展的项目系统,我不需要对现有代码进行太多修改。我想即时添加具有新效果的项目。
我的物品的共同点:
名称,描述,npc售价,是否可以装备,所需等级,是否可在战斗中使用,是否可在战斗外使用,冷却时间
所以我可以把它封装到一个类中。但是现在有物品效果。
示例:治疗 x 点生命值,治疗 x 点法力值,移除减益 x,添加增益 x,装备时给予 x 属性点,装备时有 x% 几率产生其他效果等。
这些可以组合起来,例如:治疗 x 生命值和法力值。前四个是可用物品可以具有的效果的示例,而后两个是可装备物品可以具有的效果的示例。
它背后的想法是我在数据库中也有这个结构,我可以在我的数据库中添加一个具有新效果组合的新项目,然后我的代码读取它并将它一起构建成一个新的花哨项目,而无需我修改很多。我唯一需要修改代码的时候是明显添加新效果的时候。
您将如何将其放在设计模式中?
我想到了装饰师。是否有不同的、更好的设计模式,或者甚至是多种设计模式的组合?