</details>
classDiagram
class Player{
-String name
#List<Obsever> observers
+Player(String name)
+getName(): String
+attach(Observer observer): void
+detach(Observer observer): void
+notifyAllObservers(String attackerName): void
}
class Observer{
+update(Player player,String attackerName):void
}
class Alliance{
-String allianceName
-List<Player> members
+Alliance(String allianceName, List<Player> members)
+join(Player player): void
+quit(Player player): void
+notifyAllMembers(String message, Player attacker): void
}
class AttackNotifier{
+static notify(Player player, String attackerName):void
}
Player ->> Observer
Observer ->> Player
Alliance ->> Player
AttackNotifier --> Player