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 |