46 lines
		
	
	
		
			897 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			897 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
@startuml
 | 
						|
package com.iluwatar.factorykit {
 | 
						|
  class App {
 | 
						|
    - LOGGER : Logger {static}
 | 
						|
    + App()
 | 
						|
    + main(args : String[]) {static}
 | 
						|
  }
 | 
						|
  class Axe {
 | 
						|
    + Axe()
 | 
						|
    + toString() : String
 | 
						|
  }
 | 
						|
  class Bow {
 | 
						|
    + Bow()
 | 
						|
    + toString() : String
 | 
						|
  }
 | 
						|
  interface Builder {
 | 
						|
    + add(WeaponType, Supplier<Weapon>) {abstract}
 | 
						|
  }
 | 
						|
  class Spear {
 | 
						|
    + Spear()
 | 
						|
    + toString() : String
 | 
						|
  }
 | 
						|
  class Sword {
 | 
						|
    + Sword()
 | 
						|
    + toString() : String
 | 
						|
  }
 | 
						|
  interface Weapon {
 | 
						|
  }
 | 
						|
  interface WeaponFactory {
 | 
						|
    + create(WeaponType) : Weapon {abstract}
 | 
						|
    + factory(consumer : Consumer<Builder>) : WeaponFactory {static}
 | 
						|
  }
 | 
						|
  enum WeaponType {
 | 
						|
    + AXE {static}
 | 
						|
    + BOW {static}
 | 
						|
    + SPEAR {static}
 | 
						|
    + SWORD {static}
 | 
						|
    + valueOf(name : String) : WeaponType {static}
 | 
						|
    + values() : WeaponType[] {static}
 | 
						|
  }
 | 
						|
}
 | 
						|
Axe ..|> Weapon 
 | 
						|
Bow ..|> Weapon 
 | 
						|
Spear ..|> Weapon 
 | 
						|
Sword ..|> Weapon 
 | 
						|
@enduml |