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 |