Merge pull request #281 from ankurkaushal/master

Reformat according to google style guide
This commit is contained in:
Ilkka Seppälä
2015-11-02 21:39:17 +02:00
438 changed files with 8257 additions and 8382 deletions

View File

@ -2,27 +2,28 @@ package com.iluwatar.facade;
/**
*
* The Facade design pattern is often used when a system is very complex or difficult
* to understand because the system has a large number of interdependent classes or
* its source code is unavailable. This pattern hides the complexities of the larger
* system and provides a simpler interface to the client. It typically involves a single
* wrapper class which contains a set of members required by client. These members access
* the system on behalf of the facade client and hide the implementation details.
* The Facade design pattern is often used when a system is very complex or difficult to understand
* because the system has a large number of interdependent classes or its source code is
* unavailable. This pattern hides the complexities of the larger system and provides a simpler
* interface to the client. It typically involves a single wrapper class which contains a set of
* members required by client. These members access the system on behalf of the facade client and
* hide the implementation details.
* <p>
* In this example the Facade is ({@link DwarvenGoldmineFacade}) and it provides a simpler
* interface to the goldmine subsystem.
* In this example the Facade is ({@link DwarvenGoldmineFacade}) and it provides a simpler interface
* to the goldmine subsystem.
*
*/
public class App {
/**
* Program entry point
* @param args command line args
*/
public static void main(String[] args) {
DwarvenGoldmineFacade facade = new DwarvenGoldmineFacade();
facade.startNewDay();
facade.digOutGold();
facade.endDay();
}
/**
* Program entry point
*
* @param args command line args
*/
public static void main(String[] args) {
DwarvenGoldmineFacade facade = new DwarvenGoldmineFacade();
facade.startNewDay();
facade.digOutGold();
facade.endDay();
}
}

View File

@ -7,14 +7,13 @@ package com.iluwatar.facade;
*/
public class DwarvenCartOperator extends DwarvenMineWorker {
@Override
public void work() {
System.out.println(name() + " moves gold chunks out of the mine.");
}
@Override
public String name() {
return "Dwarf cart operator";
}
@Override
public void work() {
System.out.println(name() + " moves gold chunks out of the mine.");
}
@Override
public String name() {
return "Dwarf cart operator";
}
}

View File

@ -7,14 +7,13 @@ package com.iluwatar.facade;
*/
public class DwarvenGoldDigger extends DwarvenMineWorker {
@Override
public void work() {
System.out.println(name() + " digs for gold.");
}
@Override
public String name() {
return "Dwarf gold digger";
}
@Override
public void work() {
System.out.println(name() + " digs for gold.");
}
@Override
public String name() {
return "Dwarf gold digger";
}
}

View File

@ -6,40 +6,39 @@ import java.util.List;
/**
*
* DwarvenGoldmineFacade provides a single interface
* through which users can operate the subsystems.
* DwarvenGoldmineFacade provides a single interface through which users can operate the subsystems.
*
* This makes the goldmine easier to operate and
* cuts the dependencies from the goldmine user to
* the subsystems.
* This makes the goldmine easier to operate and cuts the dependencies from the goldmine user to the
* subsystems.
*
*/
public class DwarvenGoldmineFacade {
private final List<DwarvenMineWorker> workers;
private final List<DwarvenMineWorker> workers;
public DwarvenGoldmineFacade() {
workers = new ArrayList<>();
workers.add(new DwarvenGoldDigger());
workers.add(new DwarvenCartOperator());
workers.add(new DwarvenTunnelDigger());
}
public DwarvenGoldmineFacade() {
workers = new ArrayList<>();
workers.add(new DwarvenGoldDigger());
workers.add(new DwarvenCartOperator());
workers.add(new DwarvenTunnelDigger());
}
public void startNewDay() {
makeActions(workers, DwarvenMineWorker.Action.WAKE_UP, DwarvenMineWorker.Action.GO_TO_MINE);
}
public void startNewDay() {
makeActions(workers, DwarvenMineWorker.Action.WAKE_UP, DwarvenMineWorker.Action.GO_TO_MINE);
}
public void digOutGold() {
makeActions(workers, DwarvenMineWorker.Action.WORK);
}
public void digOutGold() {
makeActions(workers, DwarvenMineWorker.Action.WORK);
}
public void endDay() {
makeActions(workers, DwarvenMineWorker.Action.GO_HOME, DwarvenMineWorker.Action.GO_TO_SLEEP);
}
public void endDay() {
makeActions(workers, DwarvenMineWorker.Action.GO_HOME, DwarvenMineWorker.Action.GO_TO_SLEEP);
}
private void makeActions(Collection<DwarvenMineWorker> workers, DwarvenMineWorker.Action... actions) {
for (DwarvenMineWorker worker : workers) {
worker.action(actions);
}
private void makeActions(Collection<DwarvenMineWorker> workers,
DwarvenMineWorker.Action... actions) {
for (DwarvenMineWorker worker : workers) {
worker.action(actions);
}
}
}

View File

@ -7,56 +7,56 @@ package com.iluwatar.facade;
*/
public abstract class DwarvenMineWorker {
public void goToSleep() {
System.out.println(name() + " goes to sleep.");
}
public void goToSleep() {
System.out.println(name() + " goes to sleep.");
}
public void wakeUp() {
System.out.println(name() + " wakes up.");
}
public void wakeUp() {
System.out.println(name() + " wakes up.");
}
public void goHome() {
System.out.println(name() + " goes home.");
}
public void goHome() {
System.out.println(name() + " goes home.");
}
public void goToMine() {
System.out.println(name() + " goes to the mine.");
}
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;
}
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);
}
public void action(Action... actions) {
for (Action action : actions) {
action(action);
}
}
public abstract void work();
public abstract void work();
public abstract String name();
public abstract String name();
static enum Action {
GO_TO_SLEEP, WAKE_UP, GO_HOME, GO_TO_MINE, WORK
}
static enum Action {
GO_TO_SLEEP, WAKE_UP, GO_HOME, GO_TO_MINE, WORK
}
}

View File

@ -7,14 +7,13 @@ package com.iluwatar.facade;
*/
public class DwarvenTunnelDigger extends DwarvenMineWorker {
@Override
public void work() {
System.out.println(name() + " creates another promising tunnel.");
}
@Override
public String name() {
return "Dwarven tunnel digger";
}
@Override
public void work() {
System.out.println(name() + " creates another promising tunnel.");
}
@Override
public String name() {
return "Dwarven tunnel digger";
}
}

View File

@ -11,9 +11,9 @@ import com.iluwatar.facade.App;
*/
public class AppTest {
@Test
public void test() {
String[] args = {};
App.main(args);
}
@Test
public void test() {
String[] args = {};
App.main(args);
}
}