39 lines
		
	
	
		
			988 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			988 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| @startuml
 | |
| package com.iluwatar.templatemethod {
 | |
|   class App {
 | |
|     + App()
 | |
|     + main(args : String[]) {static}
 | |
|   }
 | |
|   class HalflingThief {
 | |
|     - method : StealingMethod
 | |
|     + HalflingThief(method : StealingMethod)
 | |
|     + changeMethod(method : StealingMethod)
 | |
|     + steal()
 | |
|   }
 | |
|   class HitAndRunMethod {
 | |
|     - LOGGER : Logger {static}
 | |
|     + HitAndRunMethod()
 | |
|     # confuseTarget(target : String)
 | |
|     # pickTarget() : String
 | |
|     # stealTheItem(target : String)
 | |
|   }
 | |
|   abstract class StealingMethod {
 | |
|     - LOGGER : Logger {static}
 | |
|     + StealingMethod()
 | |
|     # confuseTarget(String) {abstract}
 | |
|     # pickTarget() : String {abstract}
 | |
|     + steal()
 | |
|     # stealTheItem(String) {abstract}
 | |
|   }
 | |
|   class SubtleMethod {
 | |
|     - LOGGER : Logger {static}
 | |
|     + SubtleMethod()
 | |
|     # confuseTarget(target : String)
 | |
|     # pickTarget() : String
 | |
|     # stealTheItem(target : String)
 | |
|   }
 | |
| }
 | |
| HalflingThief -->  "-method" StealingMethod
 | |
| HitAndRunMethod --|> StealingMethod 
 | |
| SubtleMethod --|> StealingMethod 
 | |
| @enduml |