Java actionPerformed

0

Posiadam napisaną aplikację w jFrame.
Niestety w metodzie actionPerformed mam pełno ifów sterujących akcjami.
Czy jest jakaś szansa, żeby pozbyć się tych ifów z actionPerformed?

0

Pomysł na szybko: może napisz jakąś metodę, która jako argument będzie przyjmowała source i w zależności od niego będzie wywoływała kolejne. Wtedy w każdym actionPerformed będziesz miał tylko tą jedną taką metodę.

3

@Shalom by napisał, że nie robimy klas kombajnów i do każdego przycisku podpinamy innego słuchacza.

0
bogdans napisał(a):

@Shalom by napisał, że nie robimy klas kombajnów i do każdego przycisku podpinamy innego słuchacza.

Otóż to!
@NewUser2k13 zrób osobną klasę implementujacą ActionListenera dla każdego guzika. Jeśli są bardzo małe (jedna linijka kodu) to mogą być anonimowe.

0

Czyli jak mam 15 ifów to mam stworzyć 15 klas?
Troszkę bez sensu IMHO.

2

Wydaje ci się. Lepiej mieć w projekcie 100 klas które są bardzo krótkie niż 10 które są wielkimi klockami. Jak masz takie małe klasy to każda potencjalna zmiana jest banalna, bo od razu widać w takiej klasie co ona robi i co się w niej dzieje.

0

Zostanę przy obecnej postaci - nie mam już czasu na edycję.

BTW
Wie ktoś może jak zrobić Diagram sekwencyjny dla aplikacji GUI (notatnik)?
Jaki dać"jednostki"?

  • user
  • aplikacja Notepad
  • txt area
  • jfilechooser
  • confirm dialog

Czy te trzy ostatnie odpadają całkowicie?

0

@NewUser2k13 co to znaczy nie mam czasu na edycję? khe?

Wujek Koziołek poleca następujące refaktoryzacje w Eclipse:

  • zaznacz kawałek z ifem > extract method
  • zaznacz nową metodę > extract class.

powtórz 15 razy czy ile tam potrzebujesz. Efekt końcowy taki jak zaproponował @Shalom, czyli SRP (http://koziolekweb.pl/2009/02/26/solidne-programowanie-czesc-1-czyli-monogamia/) w praktyce.

1 użytkowników online, w tym zalogowanych: 0, gości: 1