Лучшая практика для получения пользовательского ввода из нескольких методов в Java? - PullRequest
0 голосов
/ 08 апреля 2020

У меня есть относительно базовая c программа, в которой у меня есть несколько методов получения информации от пользователя (с использованием объекта Scanner). Я смотрю, чтобы увидеть, какой из этих методов (если либо) считается стандартной или лучшей практикой. Здесь я буду использовать один метод в качестве примера.

  1. Создайте новый объект сканера в каждом методе отдельно:
// Get date from user
public static LocalDate getDateFromUser(String date_request_label){

    Scanner inputScan = new Scanner (System.in);

    System.out.print(date_request_label + " (YYYYMMDD): ");
    String input_string = inputScan.nextLine();

    // Split input into year/month/day
    int year  = Integer.parseInt(input_string.substring(0,4));
    int month = Integer.parseInt(input_string.substring(4,6));
    int day   = Integer.parseInt(input_string.substring(6,8));

    return LocalDate.of(year,month,day);
}
Создайте один объект сканера в main и вызывайте его в каждом методе:
// Get date from user
public static LocalDate getDateFromUser(Scanner inputScan, String date_request_label){
    System.out.print(date_request_label + " (YYYYMMDD): ");
    String input_string = inputScan.nextLine();

    // Split input into year/month/day
    int year  = Integer.parseInt(input_string.substring(0,4));
    int month = Integer.parseInt(input_string.substring(4,6));
    int day   = Integer.parseInt(input_string.substring(6,8));

    return LocalDate.of(year,month,day);
}

Спасибо!

1 Ответ

1 голос
/ 08 апреля 2020

ИМХО повторное использование объекта предпочтительнее, если только это не снижает читаемость кода.

Так что я бы go выбрал второй вариант.

...