69 lines
1.5 KiB
Plaintext
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 |