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(); } } ) ) . I U B D ( I ( ( I F