• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zasada jednej odpowiedzialności jak działa?

VPS Starter Arubacloud
0 głosów
162 wizyt
pytanie zadane 27 stycznia 2020 w Java przez Szpryca Użytkownik (580 p.)
edycja 27 stycznia 2020 przez Szpryca

Chciałbym spytać czy dobrze rozumiem te zasadę podając dwa przykłady dotyczące wyświetlania oraz sterowania Menu programu. Która praktyka jest lepsza? Uruchomienie funkcji main i program przeskakuje z funkcji do funkcji (przykład 1) czy pisanie całej logiki i co ma się dziać po danym kroku, w funkcji main (przykład 2)? Mam nadzieje że zrozumiale wytłumaczyłem o co mi chodzi. Czy na tym polega zasada jednej odpowiedzialności jak na przykładzie 2, aby dana funkcja zajmowała się tylko jedną rzeczą i nie odwoływała do kolejnej?

public class App {
       public static void main(String[] args) {
            Menu menu = new Menu();
            menu.showMenu();
       }
}

public class Menu {

    public void showMenu() {
        System.out.println("1: Start quizu");
        System.out.println("2: Zakończ program");
        chooseMenuOption();
    }

    private void chooseMenuOption() {

        Scanner scanner = new Scanner(System.in);
        int choice = scanner.nextInt();

        switch(choice) {
            case 1:
                System.out.println("Z ilu pytań ma składać się quiz?");

                Quiz quiz = new Quiz();
                quiz.prepareQuestionList();
                break;
    }
}
public class App {

      public static void main(String[] args) {
          Menu menu = new Menu();
          menu.showMenu();
          int chooseMenuOption = menu.chooseMenuOption();
          if(chooseMenuOption==1) {
               Quiz quiz = new Quiz();
               quiz.prepareQuestionList();
          }
      }
}

public class Menu {

    public void showMenu() {
        System.out.println("1: Start quizu");
        System.out.println("2: Zakończ program");
    }

        public int chooseMenuOption() {

        Scanner scanner = new Scanner(System.in);
        int choice = scanner.nextInt();
        if (choice==1)
        return 1;
}

 

1 odpowiedź

+1 głos
odpowiedź 27 stycznia 2020 przez Paweł Nąckiewicz Nałogowiec (48,990 p.)
wybrane 27 stycznia 2020 przez Szpryca
 
Najlepsza
Zdecydowanie opcja 1. jest lepsza - ponieważ masz większą izolacje fragmentów kodu. Jeśli coś się zepsuje to masz mniejsze fragmenty kodu do analizy i szybciej wyłapiesz błędy. Z drugiej strony możesz też łatwiej coś rozbudowywać oraz używać jednej funkcjonalności w kilku miejscach.
komentarz 27 stycznia 2020 przez Szpryca Użytkownik (580 p.)
Dziękuję, myślałem że to opcja druga będzie lepsza ze względu na lepszą czytelność kodu ale stosowałem te pierwszą bo jest wygodniejsza
komentarz 28 stycznia 2020 przez bartzdev Użytkownik (780 p.)

@pawi125, nie mogę się z tym zgodzić. Moim zdaniem metoda druga jest o wiele lepsza przy bardziej rozbudowanych programach, zapewnia większą czytelność i jest łatwiejsza do rozbudowy struktury w dalszej przyszłości.

komentarz 29 stycznia 2020 przez Paweł Nąckiewicz Nałogowiec (48,990 p.)
Dlaczego tak uwazasz?

To jest strasznie maly przyklad i za wiele na nim nie widac, ale mio wszytsko juz tutaj metoda main wykonuje za duzo operacji.
1
komentarz 29 stycznia 2020 przez bartzdev Użytkownik (780 p.)

oh, chodziło mi oczywiście o metodę pierwszą (facepalm).

pomyliłem kody, w pełni się z Tobą zgadzam. laugh

Podobne pytania

+1 głos
1 odpowiedź 522 wizyt
–1 głos
0 odpowiedzi 611 wizyt
pytanie zadane 3 lutego 2017 w C i C++ przez Żyrosławw Bywalec (2,300 p.)
0 głosów
0 odpowiedzi 108 wizyt
pytanie zadane 7 września 2018 w C i C++ przez Raymond Nowicjusz (120 p.)

93,014 zapytań

141,977 odpowiedzi

321,268 komentarzy

62,355 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...