39 lines
		
	
	
		
			817 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			39 lines
		
	
	
		
			817 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
								 | 
							
								@startuml
							 | 
						||
| 
								 | 
							
								package com.iluwatar.state {
							 | 
						||
| 
								 | 
							
								  class AngryState {
							 | 
						||
| 
								 | 
							
								    - LOGGER : Logger {static}
							 | 
						||
| 
								 | 
							
								    - mammoth : Mammoth
							 | 
						||
| 
								 | 
							
								    + AngryState(mammoth : Mammoth)
							 | 
						||
| 
								 | 
							
								    + observe()
							 | 
						||
| 
								 | 
							
								    + onEnterState()
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  class App {
							 | 
						||
| 
								 | 
							
								    + App()
							 | 
						||
| 
								 | 
							
								    + main(args : String[]) {static}
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  class Mammoth {
							 | 
						||
| 
								 | 
							
								    - state : State
							 | 
						||
| 
								 | 
							
								    + Mammoth()
							 | 
						||
| 
								 | 
							
								    - changeStateTo(newState : State)
							 | 
						||
| 
								 | 
							
								    + observe()
							 | 
						||
| 
								 | 
							
								    + timePasses()
							 | 
						||
| 
								 | 
							
								    + toString() : String
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  class PeacefulState {
							 | 
						||
| 
								 | 
							
								    - LOGGER : Logger {static}
							 | 
						||
| 
								 | 
							
								    - mammoth : Mammoth
							 | 
						||
| 
								 | 
							
								    + PeacefulState(mammoth : Mammoth)
							 | 
						||
| 
								 | 
							
								    + observe()
							 | 
						||
| 
								 | 
							
								    + onEnterState()
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  interface State {
							 | 
						||
| 
								 | 
							
								    + observe() {abstract}
							 | 
						||
| 
								 | 
							
								    + onEnterState() {abstract}
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								PeacefulState -->  "-mammoth" Mammoth
							 | 
						||
| 
								 | 
							
								AngryState -->  "-mammoth" Mammoth
							 | 
						||
| 
								 | 
							
								Mammoth -->  "-state" State
							 | 
						||
| 
								 | 
							
								AngryState ..|> State 
							 | 
						||
| 
								 | 
							
								PeacefulState ..|> State 
							 | 
						||
| 
								 | 
							
								@enduml
							 |