这是对这个问题的跟进。上下文是相同的,因此略读可能会有用。几天来我一直在集思广益,但一无所获,所以我放弃并来到这里。
我想知道在创建像我在那里描述的系统时会发挥什么设计模式。假设我有一个战斗算法,每边可以有任意数量的战斗人员。首先我们找出谁攻击谁,然后执行。
棘手的部分是可以添加很多额外的行为,而且它们可能有些随意。把它们想象成“被动技能”。当你击中目标时,也可能会有一些行为,比如获得统计数据,但仅限于某些类型的战斗。
我之前的问题显示了装饰器是如何失败的。一个答案建议使用策略模式,但我并不急于编写十几种不同类型的策略,然后为每种策略编写几个具体的类。即便如此,如果我需要一种与我已有的完全不同的全新行为,我仍然必须违反开放封闭原则。在某些情况下,我需要一次组合多个策略,这可能会导致修饰策略或复合策略。例如,当您受到伤害时,您可能 1. 拥有将伤害减半的能力,2. 装备可以进一步减少伤害的物品,3. 向攻击者返还一些伤害,以及 4. 获得一些属性点.
那么一个有经验的建筑师会在这里做什么呢?很多游戏都实现了这些系统,所以我很好奇哪种模式或模式组合在这里运作良好。
我不想发布一堵巨大的代码墙,所以如果我的系统有任何特定部分,你想看看,请在评论中提问。