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

Wywoływanie wybranej metody w javie

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
0 głosów
393 wizyt
pytanie zadane 23 września 2016 w Java przez Nunn Początkujący (310 p.)

Dzień dobry.

Od niedawna zacząłem swoją przygodę z programowaniem i postanowiłem stworzyć bazę danych, dzięki której mógłbym wykorzystać i utrwalić zdobytą do tej pory wiedzę. Mam problem jednak z menu głównym mojego programu.

Załóżmy że mamy klasę, która zawiera trzy metody:
 

class Klasa{

        void metoda1() {   ...   }

        void metoda2() {   ...   }

        void metoda3() {   ...   }



I tutaj rodzi się moje pytanie, gdyż możliwe że nie potrafię go odpowiednio skonstruować i nie mogę znaleźć na nie odpowiedzi. Czy istnieje instrukcja, która pozwoli mi wywołać odpowiednią z metod za pomocą zmiennej? Chodzi mi o wybór metody poprzez wpisanie odpowiedniej wartości w menu (np. '1' - odczyt danych).

Chciałbym móc wywoływać odpowiednie podkategorie menu, bez tworzenia zbyt rozgałęzionej instrukcji sterującej switch w głównej części kodu.

komentarz 23 września 2016 przez K0XM4N Gaduła (3,640 p.)
Gdy masz wiele opcji to po prostu musisz skorzystać ze switcha.

2 odpowiedzi

+2 głosów
odpowiedź 23 września 2016 przez Trucik Obywatel (1,130 p.)
Istnieje taka możliwość. Struktura będzie trochę inna, ponieważ będziesz posiadał nie 3 metody w klasie, a 3 klasy o tej samej nazwie metody, ale innej implementacji. Rezultat będzie jednak zadowalający, ponieważ możesz dynamicznie (z poziomu aplikacji) decydować o tym, którą metodę wywołasz.

By tego dokonać należy skorzystać z wzorca projektowego STAN: https://www.tutorialspoint.com/design_pattern/state_pattern.htm

Gdybyś miał problem ze zrozumieniem (co dla początkujących jest bardzo trudne) przedstaw konrekst, w którym będziesz chciał to wykorzystać, a stopniowo dam CI pewne podwiedzi :).
komentarz 23 września 2016 przez efiku Szeryf (75,160 p.)
Pulsuje mocno :)
komentarz 23 września 2016 przez smh Obywatel (1,940 p.)
Pulsuje? Że suma głosów pulsuje?
0 głosów
odpowiedź 23 września 2016 przez Nunn Początkujący (310 p.)
Dziękuję za pomoc. :)

Trochę chyba z tym przekombinowałem, ponieważ można w dość łatwy sposób użyć instrukcji switch do wywoływania poszczególnych metod, zamiast tworzyć jednego molocha, o czym jednak pomyślałem dopiero przed chwilą (niby takie proste, a myśl ta wpadła mi dopiero po dłuższym namyśle :P).

W wolne chwili mam też zamiar zapoznać się z powyższym wzorcem STAN, jednak jeśli będę wstanie to pojąć, zaimplementuje dopiero może w późniejszych opcjach programu.
komentarz 23 września 2016 przez Trucik Obywatel (1,130 p.)

Chciałbym móc wywoływać odpowiednie podkategorie menu, bez tworzenia zbyt rozgałęzionej instrukcji sterującej switch w głównej części kodu.

Napisałeś, że nie chcesz używać switch'a w głównej części kodu, stwierdziłem też, że nie chcesz go w ogóle używać :). Nie mniej polecam zapoznanie się z wzorcem stan, ponieważ jest jednym z najczęściej wykorzystywanych.

komentarz 23 września 2016 przez efiku Szeryf (75,160 p.)
No tak. Lepiej iść na łatwiznę niż użyć dosyć przydatnego wzorca. :/
komentarz 23 września 2016 przez Nunn Początkujący (310 p.)
Zapoznam się z nim, jednak tak jak mówiłem wcześniej, program ma na celu nie być super efektywnym, ale jedynie utrwalić moja wiedzę, którą do tej pory zdobyłem. Jeśli będę co chwilę odnajdywał coś nowego, efekt będzie taki że go najzwyczajniej w świecie nie skończę nigdy, ponieważ będę go przebudowywał w nieskończoność.

 

Co do wykorzystywania switch'a i poruszonego problemu:  zanim wpadłem na to proste rozwiązanie, wyobrażałem sobie tylko jeden wariant tej opcji: wielkiego molocha z masą komend, w którym ciężko będzie manewrować i się połapać, więc z góry go odrzuciłem.

Podobne pytania

0 głosów
0 odpowiedzi 159 wizyt
pytanie zadane 30 lipca 2018 w PHP przez cca Nowicjusz (120 p.)
0 głosów
1 odpowiedź 315 wizyt
pytanie zadane 4 grudnia 2021 w C i C++ przez magda_19 Gaduła (3,080 p.)
0 głosów
1 odpowiedź 246 wizyt
pytanie zadane 4 maja 2020 w JavaScript przez mi-20 Stary wyjadacz (13,250 p.)

93,439 zapytań

142,431 odpowiedzi

322,674 komentarzy

62,802 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

...