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[...]