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 |