2019-12-07 18:03:49 +02:00

69 lines
1.5 KiB
Plaintext

@startuml
package com.iluwatar.mediator {
enum Action {
+ ENEMY {static}
+ GOLD {static}
+ HUNT {static}
+ NONE {static}
+ TALE {static}
- description : String
- title : String
+ getDescription() : String
+ toString() : String
+ valueOf(name : String) : Action {static}
+ values() : Action[] {static}
}
class App {
+ App()
+ main(args : String[]) {static}
}
class Hobbit {
+ Hobbit()
+ toString() : String
}
class Hunter {
+ Hunter()
+ toString() : String
}
interface Party {
+ act(PartyMember, Action) {abstract}
+ addMember(PartyMember) {abstract}
}
class PartyImpl {
- members : List<PartyMember>
+ PartyImpl()
+ act(actor : PartyMember, action : Action)
+ addMember(member : PartyMember)
}
interface PartyMember {
+ act(Action) {abstract}
+ joinedParty(Party) {abstract}
+ partyAction(Action) {abstract}
}
abstract class PartyMemberBase {
- LOGGER : Logger {static}
# party : Party
+ PartyMemberBase()
+ act(action : Action)
+ joinedParty(party : Party)
+ partyAction(action : Action)
+ toString() : String {abstract}
}
class Rogue {
+ Rogue()
+ toString() : String
}
class Wizard {
+ Wizard()
+ toString() : String
}
}
PartyImpl --> "-members" PartyMember
PartyMemberBase --> "-party" Party
Hobbit --|> PartyMemberBase
Hunter --|> PartyMemberBase
PartyImpl ..|> Party
PartyMemberBase ..|> PartyMember
Rogue --|> PartyMemberBase
Wizard --|> PartyMemberBase
@enduml