60 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			60 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
								 | 
							
								@startuml
							 | 
						||
| 
								 | 
							
								package com.iluwatar.facade {
							 | 
						||
| 
								 | 
							
								  class App {
							 | 
						||
| 
								 | 
							
								    + App()
							 | 
						||
| 
								 | 
							
								    + main(args : String[]) {static}
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  class DwarvenCartOperator {
							 | 
						||
| 
								 | 
							
								    - LOGGER : Logger {static}
							 | 
						||
| 
								 | 
							
								    + DwarvenCartOperator()
							 | 
						||
| 
								 | 
							
								    + name() : String
							 | 
						||
| 
								 | 
							
								    + work()
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  class DwarvenGoldDigger {
							 | 
						||
| 
								 | 
							
								    - LOGGER : Logger {static}
							 | 
						||
| 
								 | 
							
								    + DwarvenGoldDigger()
							 | 
						||
| 
								 | 
							
								    + name() : String
							 | 
						||
| 
								 | 
							
								    + work()
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  class DwarvenGoldmineFacade {
							 | 
						||
| 
								 | 
							
								    - workers : List<DwarvenMineWorker>
							 | 
						||
| 
								 | 
							
								    + DwarvenGoldmineFacade()
							 | 
						||
| 
								 | 
							
								    + digOutGold()
							 | 
						||
| 
								 | 
							
								    + endDay()
							 | 
						||
| 
								 | 
							
								    - makeActions(workers : Collection<DwarvenMineWorker>, actions : Action[]) {static}
							 | 
						||
| 
								 | 
							
								    + startNewDay()
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  abstract class DwarvenMineWorker {
							 | 
						||
| 
								 | 
							
								    - LOGGER : Logger {static}
							 | 
						||
| 
								 | 
							
								    + DwarvenMineWorker()
							 | 
						||
| 
								 | 
							
								    - action(action : Action)
							 | 
						||
| 
								 | 
							
								    + action(actions : Action[])
							 | 
						||
| 
								 | 
							
								    + goHome()
							 | 
						||
| 
								 | 
							
								    + goToMine()
							 | 
						||
| 
								 | 
							
								    + goToSleep()
							 | 
						||
| 
								 | 
							
								    + name() : String {abstract}
							 | 
						||
| 
								 | 
							
								    + wakeUp()
							 | 
						||
| 
								 | 
							
								    + work() {abstract}
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  ~enum Action {
							 | 
						||
| 
								 | 
							
								    + GO_HOME {static}
							 | 
						||
| 
								 | 
							
								    + GO_TO_MINE {static}
							 | 
						||
| 
								 | 
							
								    + GO_TO_SLEEP {static}
							 | 
						||
| 
								 | 
							
								    + WAKE_UP {static}
							 | 
						||
| 
								 | 
							
								    + WORK {static}
							 | 
						||
| 
								 | 
							
								    + valueOf(name : String) : Action {static}
							 | 
						||
| 
								 | 
							
								    + values() : Action[] {static}
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  class DwarvenTunnelDigger {
							 | 
						||
| 
								 | 
							
								    - LOGGER : Logger {static}
							 | 
						||
| 
								 | 
							
								    + DwarvenTunnelDigger()
							 | 
						||
| 
								 | 
							
								    + name() : String
							 | 
						||
| 
								 | 
							
								    + work()
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								DwarvenGoldmineFacade -->  "-workers" DwarvenMineWorker
							 | 
						||
| 
								 | 
							
								Action ..+ DwarvenMineWorker
							 | 
						||
| 
								 | 
							
								DwarvenCartOperator --|> DwarvenMineWorker 
							 | 
						||
| 
								 | 
							
								DwarvenGoldDigger --|> DwarvenMineWorker 
							 | 
						||
| 
								 | 
							
								DwarvenTunnelDigger --|> DwarvenMineWorker 
							 | 
						||
| 
								 | 
							
								@enduml
							 |