我正在为大学做一个项目,我们正在编写一个游戏。在这个游戏中,可能会出现多种效果,一种效果会影响另一种效果的行为。现在的一个想法是使用一种复合模式,起初它似乎是一个可靠的解决方案。这里最大的问题是效果的行为方式取决于它所耦合的效果,我们看到解决此问题的唯一方法是使用 .getClass() 或我们想不惜一切代价避免的 instanceof。
有哪些方法可以设计这个问题?
编辑(一个小例子):我没有明确的代码示例,但我将尝试通过以下示例进行澄清:
所以游戏中有手榴弹(很明显会爆炸并造成伤害),这种爆炸被视为“ExplosionEffect”。手榴弹所在的方格在运行时可能会发生电源故障(PowerfailureEffect)。ExplosionEffect 和 PowerfailureEffect 可以耦合,这会导致爆炸更强烈并造成更多伤害。ExplosionEffect 也可以与其他效果相结合,导致爆炸伤害的表现更加不同