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
							 |