Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 0499248

Browse filesBrowse files
committed
[refactor] Separate out one method to call actions for workers.
1 parent 0fbb4f4 commit 0499248
Copy full SHA for 0499248

2 files changed

+42-12Lines changed: 42 additions & 12 deletions

File tree

Expand file treeCollapse file tree
Open diff view settings
Filter options
Expand file treeCollapse file tree
Open diff view settings
Collapse file
+10-12Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.iluwatar;
22

33
import java.util.ArrayList;
4+
import java.util.Collection;
45
import java.util.List;
56

67
/**
@@ -15,7 +16,7 @@
1516
*/
1617
public class DwarvenGoldmineFacade {
1718

18-
List<DwarvenMineWorker> workers;
19+
private final List<DwarvenMineWorker> workers;
1920

2021
public DwarvenGoldmineFacade() {
2122
workers = new ArrayList<>();
@@ -25,23 +26,20 @@ public DwarvenGoldmineFacade() {
2526
}
2627

2728
public void startNewDay() {
28-
for (DwarvenMineWorker worker : workers) {
29-
worker.wakeUp();
30-
worker.goToMine();
31-
}
29+
makeActions(workers, DwarvenMineWorker.Action.WAKE_UP, DwarvenMineWorker.Action.GO_TO_MINE);
3230
}
3331

3432
public void digOutGold() {
35-
for (DwarvenMineWorker worker : workers) {
36-
worker.work();
37-
}
33+
makeActions(workers, DwarvenMineWorker.Action.WORK);
3834
}
3935

4036
public void endDay() {
41-
for (DwarvenMineWorker worker : workers) {
42-
worker.goHome();
43-
worker.goToSleep();
44-
}
37+
makeActions(workers, DwarvenMineWorker.Action.GO_HOME, DwarvenMineWorker.Action.GO_TO_SLEEP);
4538
}
4639

40+
private void makeActions(Collection<DwarvenMineWorker> workers, DwarvenMineWorker.Action... actions) {
41+
for (DwarvenMineWorker worker : workers) {
42+
worker.action(actions);
43+
}
44+
}
4745
}
Collapse file

‎facade/src/main/java/com/iluwatar/DwarvenMineWorker.java‎

Copy file name to clipboardExpand all lines: facade/src/main/java/com/iluwatar/DwarvenMineWorker.java
+32Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,40 @@ public void goToMine() {
2323
System.out.println(name() + " goes to the mine.");
2424
}
2525

26+
private void action(Action action) {
27+
switch (action) {
28+
case GO_TO_SLEEP:
29+
goToSleep();
30+
break;
31+
case WAKE_UP:
32+
wakeUp();
33+
break;
34+
case GO_HOME:
35+
goHome();
36+
break;
37+
case GO_TO_MINE:
38+
goToMine();
39+
break;
40+
case WORK:
41+
work();
42+
break;
43+
default:
44+
System.out.println("Undefined action");
45+
break;
46+
}
47+
}
48+
49+
public void action(Action... actions) {
50+
for (Action action : actions) {
51+
action(action);
52+
}
53+
}
54+
2655
public abstract void work();
2756

2857
public abstract String name();
2958

59+
static enum Action {
60+
GO_TO_SLEEP, WAKE_UP, GO_HOME, GO_TO_MINE, WORK
61+
}
3062
}

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.