La interfaz Ataque no modela a un ataque sino a un atacante. Habría que refactorizar el nombre o modelar efectivamente un ataque con el patrón Strategy.
De esta manera se delegaría a la instancia del ataque correspondiente el ataque en sí, pasándole por parámetro tanto el colocable atacante como el atacado, manteniendo la estrategia de Double Dispatch ya implementada.
La interfaz Ataque no modela a un ataque sino a un atacante. Habría que refactorizar el nombre o modelar efectivamente un ataque con el patrón Strategy.
De esta manera se delegaría a la instancia del ataque correspondiente el ataque en sí, pasándole por parámetro tanto el colocable atacante como el atacado, manteniendo la estrategia de Double Dispatch ya implementada.