Files
java-design-patterns/facade/src/main/java/com/iluwatar/DwarvenMineWorker.java

63 lines
1.3 KiB
Java
Raw Normal View History

2014-08-13 22:19:28 +03:00
package com.iluwatar;
/**
*
* DwarvenMineWorker is one of the goldmine subsystems.
*
*/
2014-08-13 22:19:28 +03:00
public abstract class DwarvenMineWorker {
public void goToSleep() {
System.out.println(name() + " goes to sleep.");
}
2014-08-13 22:19:28 +03:00
public void wakeUp() {
System.out.println(name() + " wakes up.");
}
2014-08-13 22:19:28 +03:00
public void goHome() {
System.out.println(name() + " goes home.");
}
2014-08-13 22:19:28 +03:00
public void goToMine() {
System.out.println(name() + " goes to the mine.");
}
private void action(Action action) {
switch (action) {
case GO_TO_SLEEP:
goToSleep();
break;
case WAKE_UP:
wakeUp();
break;
case GO_HOME:
goHome();
break;
case GO_TO_MINE:
goToMine();
break;
case WORK:
work();
break;
default:
System.out.println("Undefined action");
break;
}
}
public void action(Action... actions) {
for (Action action : actions) {
action(action);
}
}
2014-08-13 22:19:28 +03:00
public abstract void work();
2014-08-13 22:19:28 +03:00
public abstract String name();
static enum Action {
GO_TO_SLEEP, WAKE_UP, GO_HOME, GO_TO_MINE, WORK
}
2014-08-13 22:19:28 +03:00
}