Mehr Features

Zeit, das Programm weiterzuentwickeln. Wir refactoren askName() in eine eigene Klasse und machen es allgemeiner.

$ git checkout -b feature/prompting-library
[...]

Inhalt UserInterface.java:

import java.util.Scanner;
public class UserInterface {
public static String promptUser(
String message,
String fallback,
String prompt)
{
System.out.println(message);
System.out.print(prompt);
Scanner scanner = new Scanner(System.in);
String response = scanner.nextLine();
scanner.close();
if ("".equals(response)) {
return fallback;
}
return response;
}
}

Änderungen in Makefile:

CLASSES = \
Main.java \
UserInterface.java
$ git add UserInterface.java
$ git add Makefile
$ git commit

Add generic user prompt method


Ein Standardwert für den Prompt wird unser Programm in Zukunft leichter einheitlich gestaltbar machen.

Änderungen in UserInterface.java:

public static String promptUser(String message, String fallback) {
return promptUser(message, fallback, "> ");
}
$ git add UserInterface.java
$ git commit

Add default prompt


Nun können wir die neuen Funktionen auch verwenden.

Neuer Inhalt von Main.java:

public class Main {
private static String askName() {
return UserInterface.promptUser("Hey, what's your name?", "Human");
}
public static void main(String[] args) {
String name = askName();
System.out.println(String.format("Hello, %s!", name));
}
}
$ git add Main.java
$ git commit

Use promptUser() in Main class

Die Änderungen können wir nach master mergen, wo sie auf Abnahme warten werden.

$ git checkout master
[...]
$ git pull
[...]
$ git merge --no-ff feature/prompting-library
[...]
$ git push
[...]