战斗小游戏-Java实现-设计模式
- 构建Stage场景时,用创建者模式✅
- 创建角色时,使用工厂方法模式(工厂方法模式、抽象工厂模式)✅
- 将人及各类角色加入场景时,使用原型模式进行clone✅
- 构建装备合成时,使用组合模式✅
- 进行文件存储时,使用单例模式✅ 维护一个列表,用于查找系统中的现有角色,以进行挑战,使用单例模式⬆️☑️
- 背包系统,采用迭代器模式✅
- 攻击指令可使用解释器模式解释❌
- 使用状态模式,用以标识目标的状态✅
- 技能点组合,使用命令模式进行组合,可以撤销❌
- 在进行伤害整合时,采用外观模式,因为伤害来自于:目标本身的自带伤害、技能伤害、武器造成的伤害、装备的附加伤害✅
- 在进行战斗时,利用中介者模式,对战斗双方进行中介访问✅
- 当健康值、能量值等可变值发生改变时,通知作出相应的变化等,采用观察者模式✅
- 在攻击前或进行操作前,需要检查合法性等,所以使用代理模式,在执行前后加上检查✅
- 武器可以添加配件,因此可以使用装饰模式✅
- 在进行伤害计算时,使用适配器模式,将伤害计算接口统一✅
- 使用备忘录模式,存储当前目标状态信息,并为系统添加召唤师复活功能✅
- 在构建模型到表模型转换工具的时候,使用享元模式✅
- 构建模型转换工具时,不同的模型类需要不同的映射文件,使用模板方法模式,动态化子类映射文件获取✅
- service类的处理,使用桥接模式,以实现业务处理和内部接口实现和抽象的分离✅
- 在实现升级处理时,由于等级段和经验值的不同,需要处理不同的操作,如经验不足则将经验累积 ,否则升级并获得剩余经验,因此采用责任链模式,将不同经验值的操作交由不同的对象处理✅
- 在进行游戏设计时,可以将各个等级进行划分,如入门期、新手期、成长期、高手期,不同的时期在计算升级所需策略时通常不同,保证在角色在不同时期,升级所需的时长不同,因此可以结合策略模式,将升级所需经验值算法进行策略封装✅
- 经验处理为后续添加,为保证原有封装不被破坏,使用访问者模式,在责任链之间进行交互,使用访问者模式✅
问题:当增加角色类型时,计算伤害的方法将需要被修改