37 lines
		
	
	
		
			893 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			893 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| @startuml
 | |
| package com.iluwatar.strategy {
 | |
|   class App {
 | |
|     - LOGGER : Logger {static}
 | |
|     + App()
 | |
|     + main(args : String[]) {static}
 | |
|   }
 | |
|   class DragonSlayer {
 | |
|     - strategy : DragonSlayingStrategy
 | |
|     + DragonSlayer(strategy : DragonSlayingStrategy)
 | |
|     + changeStrategy(strategy : DragonSlayingStrategy)
 | |
|     + goToBattle()
 | |
|   }
 | |
|   interface DragonSlayingStrategy {
 | |
|     + execute() {abstract}
 | |
|   }
 | |
|   class MeleeStrategy {
 | |
|     - LOGGER : Logger {static}
 | |
|     + MeleeStrategy()
 | |
|     + execute()
 | |
|   }
 | |
|   class ProjectileStrategy {
 | |
|     - LOGGER : Logger {static}
 | |
|     + ProjectileStrategy()
 | |
|     + execute()
 | |
|   }
 | |
|   class SpellStrategy {
 | |
|     - LOGGER : Logger {static}
 | |
|     + SpellStrategy()
 | |
|     + execute()
 | |
|   }
 | |
| }
 | |
| DragonSlayer -->  "-strategy" DragonSlayingStrategy
 | |
| MeleeStrategy ..|> DragonSlayingStrategy 
 | |
| ProjectileStrategy ..|> DragonSlayingStrategy 
 | |
| SpellStrategy ..|> DragonSlayingStrategy 
 | |
| @enduml |