B
.
public class Fight {
private State state = new State();
private Player player1, player2;
private final PlayerUpdater updater;
public Fight(Player player1, Player player2) {
this(player1, player2, new PlayerUpdaterImpl());
}
protected Fight(Player player1, Player player2,
PlayerUpdater updater) {
this.player1 = player1;
this.player2 = player2;
this.updater = updater;
}
...
public void attack(Player attacker, Weapon weapon) {
Player opponent = getOpponentOf(attacker);
int damage = calculateDamage(opponent, weapon);
opponent.setHealth(opponent.getHealth() - damage);
updater.updatePlayer(opponent);
updateState();
}
}
. P
U . .
.. .
F